mars3d-wind 3.7.20 → 3.7.22
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/dist/mars3d-wind.js +15 -0
- package/package.json +2 -2
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mars3D平台插件,支持气象 风向图 功能插件 mars3d-wind
|
|
3
|
+
*
|
|
4
|
+
* 版本信息:v3.7.22
|
|
5
|
+
* 编译日期:2024-07-16 21:25:50
|
|
6
|
+
* 版权所有:Copyright by 火星科技 http://mars3d.cn
|
|
7
|
+
* 使用单位:免费公开版 ,2024-01-15
|
|
8
|
+
*/
|
|
9
|
+
(function (global, factory) {
|
|
10
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, (window.mars3d || require('mars3d'))) :
|
|
11
|
+
typeof define === 'function' && define.amd ? define(['exports', 'mars3d'], factory) :
|
|
12
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["mars3d-wind"] = {}, global.mars3d));
|
|
13
|
+
})(this, (function (exports, mars3d) {
|
|
14
|
+
'use strict';(function(_0x511489,_0x3a2e99){const _0x32a19e=_0x511489();function _0x28e1e4(_0x348410,_0x2cd7e3){return _0x1cf6(_0x2cd7e3-0x2bf,_0x348410);}function _0x1709fd(_0x41c239,_0x9d2d98){return _0x1cf6(_0x9d2d98- -0xa9,_0x41c239);}while(!![]){try{const _0x3b0713=parseInt(_0x1709fd(0xc,0x49))/0x1*(-parseInt(_0x28e1e4(0x4c6,0x458))/0x2)+-parseInt(_0x1709fd(0x3a,0x54))/0x3+-parseInt(_0x1709fd(0x9,0x2f))/0x4*(parseInt(_0x1709fd(0x109,0xcd))/0x5)+parseInt(_0x28e1e4(0x4f1,0x4b4))/0x6*(parseInt(_0x28e1e4(0x3e8,0x3e4))/0x7)+-parseInt(_0x28e1e4(0x3aa,0x3c3))/0x8*(parseInt(_0x28e1e4(0x41b,0x39c))/0x9)+parseInt(_0x1709fd(0xc1,0x7a))/0xa+parseInt(_0x28e1e4(0x4cb,0x47d))/0xb;if(_0x3b0713===_0x3a2e99)break;else _0x32a19e['push'](_0x32a19e['shift']());}catch(_0x5d047e){_0x32a19e['push'](_0x32a19e['shift']());}}}(_0x1251,0x6fbf8));function _interopNamespace(_0x51c93e){function _0x5b72a2(_0x456740,_0x27446b){return _0x1cf6(_0x27446b-0x25d,_0x456740);}function _0xe048b4(_0x4fceae,_0x894643){return _0x1cf6(_0x894643- -0x340,_0x4fceae);}if(_0x51c93e&&_0x51c93e[_0xe048b4(-0x208,-0x173)])return _0x51c93e;var _0xa87aab=Object['create'](null);return _0x51c93e&&Object[_0x5b72a2(0x33b,0x32e)](_0x51c93e)[_0x5b72a2(0x3c0,0x358)](function(_0x1dc3e7){function _0x30cf13(_0x1b897e,_0x23847e){return _0xe048b4(_0x23847e,_0x1b897e-0x299);}if(_0x1dc3e7!=='default'){var _0x509826=Object['getOwnPropertyDescriptor'](_0x51c93e,_0x1dc3e7);Object[_0x30cf13(0xd6,0x161)](_0xa87aab,_0x1dc3e7,_0x509826['get']?_0x509826:{'enumerable':!![],'get':function(){return _0x51c93e[_0x1dc3e7];}});}}),_0xa87aab['default']=_0x51c93e,_0xa87aab;}function _0x1cf6(_0x5880c1,_0x447de8){const _0x125111=_0x1251();return _0x1cf6=function(_0x1cf6b0,_0x1a221c){_0x1cf6b0=_0x1cf6b0-0xc4;let _0x59793f=_0x125111[_0x1cf6b0];return _0x59793f;},_0x1cf6(_0x5880c1,_0x447de8);}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$7=mars3d__namespace['Cesium'];function getU(_0x6d0797,_0x1d240){const _0x481687=_0x6d0797*Math['cos'](Cesium$7['Math'][_0x413ce0(-0x185,-0x115)](_0x1d240));function _0x413ce0(_0x5a3671,_0x1f9e06){return _0x1cf6(_0x5a3671- -0x32a,_0x1f9e06);}return _0x481687;}function _0x1251(){const _0x3a4ccb=['currentTrailsColor','pixelSize','currentParticlesPosition','refreshParticles','clearFramebuffers','updateViewerParameters','style','IDENTITY','STATIC_DRAW','DISABLE_LOG_DEPTH_FRAGMENT_WRITE','height','particlesTextures','_setOptionsHook','destination-in','camera','execute','toGridXY','setData','15RrxUtp','Draw','preExecute','clear','scene','_pointerEvents','removeChild','defineProperty','BaseLayer','pointerEvents','toDegrees','DISABLE_GL_POSITION_LOG_DEPTH','_calc_speedRate','nextParticlesPosition','visibility','viewerParameters','mouse_move','defines','sources','xmax','getColor','dropRate','createSegmentsGeometry','getWind','mouseUp','PI_OVER_TWO','log','moveTo','rgb(206,255,255)','add','setOptions','createRenderingPrimitives','mouseDown','mouse_down','Compute','1586KvxXBo','canvas','createRenderingFramebuffers','onmessage','none','maxAge','getFullscreenQuad','_removedHook','ClearCommand','width','uniform\x20sampler2D\x20trailsColorTexture;\x0auniform\x20sampler2D\x20trailsDepthTexture;\x0a\x0ain\x20vec2\x20textureCoordinate;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20vec4\x20trailsColor\x20=\x20texture(trailsColorTexture,\x20textureCoordinate);\x0a\x20\x20\x20\x20float\x20trailsDepth\x20=\x20texture(trailsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture(czm_globeDepthTexture,\x20textureCoordinate));\x0a\x0a\x20\x20\x20\x20if\x20(trailsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20out_FragColor\x20=\x20trailsColor;\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20out_FragColor\x20=\x20vec4(0.0);\x0a\x20\x20\x20\x20}\x0a}\x0a','preRender','toRadians','_colorRamp','_tomap','length','canvasWidth','wind','mouseHidden','Cartesian2','umin','pow','reverse','atan2','framebuffer','fromCssColorString','postProcessingPosition','umax','context','_onMouseMoveEvent','_onMouseDownEvent','uniform\x20sampler2D\x20nextParticlesPosition;\x0auniform\x20sampler2D\x20nextParticlesSpeed;\x20//\x20(u,\x20v,\x20w,\x20normalization)\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20lonRange;\x0auniform\x20vec2\x20latRange;\x0a\x0auniform\x20float\x20randomCoefficient;\x20//\x20use\x20to\x20improve\x20the\x20pseudo-random\x20generator\x0auniform\x20float\x20dropRate;\x20//\x20drop\x20rate\x20is\x20a\x20chance\x20a\x20particle\x20will\x20restart\x20at\x20random\x20position\x20to\x20avoid\x20degeneration\x0auniform\x20float\x20dropRateBump;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0a//\x20pseudo-random\x20generator\x0aconst\x20vec3\x20randomConstants\x20=\x20vec3(12.9898,\x2078.233,\x204375.85453);\x0aconst\x20vec2\x20normalRange\x20=\x20vec2(0.0,\x201.0);\x0afloat\x20rand(vec2\x20seed,\x20vec2\x20range)\x20{\x0a\x20\x20\x20\x20vec2\x20randomSeed\x20=\x20randomCoefficient\x20*\x20seed;\x0a\x20\x20\x20\x20float\x20temp\x20=\x20dot(randomConstants.xy,\x20randomSeed);\x0a\x20\x20\x20\x20temp\x20=\x20fract(sin(temp)\x20*\x20(randomConstants.z\x20+\x20temp));\x0a\x20\x20\x20\x20return\x20temp\x20*\x20(range.y\x20-\x20range.x)\x20+\x20range.x;\x0a}\x0a\x0avec3\x20generateRandomParticle(vec2\x20seed,\x20float\x20lev)\x20{\x0a\x20\x20\x20\x20//\x20ensure\x20the\x20longitude\x20is\x20in\x20[0,\x20360]\x0a\x20\x20\x20\x20float\x20randomLon\x20=\x20mod(rand(seed,\x20lonRange),\x20360.0);\x0a\x20\x20\x20\x20float\x20randomLat\x20=\x20rand(-seed,\x20latRange);\x0a\x0a\x20\x20\x20\x20return\x20vec3(randomLon,\x20randomLat,\x20lev);\x0a}\x0a\x0abool\x20particleOutbound(vec3\x20particle)\x20{\x0a\x20\x20\x20\x20return\x20particle.y\x20<\x20-90.0\x20||\x20particle.y\x20>\x2090.0;\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20vec3\x20nextParticle\x20=\x20texture(nextParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec4\x20nextSpeed\x20=\x20texture(nextParticlesSpeed,\x20v_textureCoordinates);\x0a\x20\x20\x20\x20float\x20particleDropRate\x20=\x20dropRate\x20+\x20dropRateBump\x20*\x20nextSpeed.a;\x0a\x0a\x20\x20\x20\x20vec2\x20seed1\x20=\x20nextParticle.xy\x20+\x20v_textureCoordinates;\x0a\x20\x20\x20\x20vec2\x20seed2\x20=\x20nextSpeed.xy\x20+\x20v_textureCoordinates;\x0a\x20\x20\x20\x20vec3\x20randomParticle\x20=\x20generateRandomParticle(seed1,\x20nextParticle.z);\x0a\x20\x20\x20\x20float\x20randomNumber\x20=\x20rand(seed2,\x20normalRange);\x0a\x0a\x20\x20\x20\x20if\x20(randomNumber\x20<\x20particleDropRate\x20||\x20particleOutbound(nextParticle))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20out_FragColor\x20=\x20vec4(randomParticle,\x201.0);\x20//\x201.0\x20means\x20this\x20is\x20a\x20random\x20particle\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20out_FragColor\x20=\x20vec4(nextParticle,\x200.0);\x0a\x20\x20\x20\x20}\x0a}\x0a','fromGeometry','//\x20the\x20size\x20of\x20UV\x20textures:\x20width\x20=\x20lon,\x20height\x20=\x20lat*lev\x0auniform\x20sampler2D\x20U;\x20//\x20eastward\x20wind\x0auniform\x20sampler2D\x20V;\x20//\x20northward\x20wind\x0a\x0auniform\x20sampler2D\x20currentParticlesPosition;\x20//\x20(lon,\x20lat,\x20lev)\x0a\x0auniform\x20vec3\x20dimension;\x20//\x20(lon,\x20lat,\x20lev)\x0auniform\x20vec3\x20minimum;\x20//\x20minimum\x20of\x20each\x20dimension\x0auniform\x20vec3\x20maximum;\x20//\x20maximum\x20of\x20each\x20dimension\x0auniform\x20vec3\x20interval;\x20//\x20interval\x20of\x20each\x20dimension\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0avec2\x20mapPositionToNormalizedIndex2D(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20ensure\x20the\x20range\x20of\x20longitude\x20and\x20latitude\x0a\x20\x20\x20\x20lonLatLev.x\x20=\x20mod(lonLatLev.x,\x20360.0);\x0a\x20\x20\x20\x20lonLatLev.y\x20=\x20clamp(lonLatLev.y,\x20-90.0,\x2090.0);\x0a\x0a\x20\x20\x20\x20vec3\x20index3D\x20=\x20vec3(0.0);\x0a\x20\x20\x20\x20index3D.x\x20=\x20(lonLatLev.x\x20-\x20minimum.x)\x20/\x20interval.x;\x0a\x20\x20\x20\x20index3D.y\x20=\x20(lonLatLev.y\x20-\x20minimum.y)\x20/\x20interval.y;\x0a\x20\x20\x20\x20index3D.z\x20=\x20(lonLatLev.z\x20-\x20minimum.z)\x20/\x20interval.z;\x0a\x0a\x20\x20\x20\x20//\x20the\x20st\x20texture\x20coordinate\x20corresponding\x20to\x20(col,\x20row)\x20index\x0a\x20\x20\x20\x20//\x20example\x0a\x20\x20\x20\x20//\x20data\x20array\x20is\x20[0,\x201,\x202,\x203,\x204,\x205],\x20width\x20=\x203,\x20height\x20=\x202\x0a\x20\x20\x20\x20//\x20the\x20content\x20of\x20texture\x20will\x20be\x0a\x20\x20\x20\x20//\x20t\x201.0\x0a\x20\x20\x20\x20//\x20\x20\x20\x20|\x20\x203\x204\x205\x0a\x20\x20\x20\x20//\x20\x20\x20\x20|\x0a\x20\x20\x20\x20//\x20\x20\x20\x20|\x20\x200\x201\x202\x0a\x20\x20\x20\x20//\x20\x20\x200.0------1.0\x20s\x0a\x0a\x20\x20\x20\x20vec2\x20index2D\x20=\x20vec2(index3D.x,\x20index3D.z\x20*\x20dimension.y\x20+\x20index3D.y);\x0a\x20\x20\x20\x20vec2\x20normalizedIndex2D\x20=\x20vec2(index2D.x\x20/\x20dimension.x,\x20index2D.y\x20/\x20(dimension.y\x20*\x20dimension.z));\x0a\x20\x20\x20\x20return\x20normalizedIndex2D;\x0a}\x0a\x0afloat\x20getWind(sampler2D\x20windTexture,\x20vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLatLev);\x0a\x20\x20\x20\x20float\x20result\x20=\x20texture(windTexture,\x20normalizedIndex2D).r;\x0a\x20\x20\x20\x20return\x20result;\x0a}\x0a\x0aconst\x20mat4\x20kernelMatrix\x20=\x20mat4(\x0a\x20\x20\x20\x200.0,\x20-1.0,\x202.0,\x20-1.0,\x20//\x20first\x20column\x0a\x20\x20\x20\x202.0,\x200.0,\x20-5.0,\x203.0,\x20//\x20second\x20column\x0a\x20\x20\x20\x200.0,\x201.0,\x204.0,\x20-3.0,\x20//\x20third\x20column\x0a\x20\x20\x20\x200.0,\x200.0,\x20-1.0,\x201.0\x20//\x20fourth\x20column\x0a);\x0afloat\x20oneDimensionInterpolation(float\x20t,\x20float\x20p0,\x20float\x20p1,\x20float\x20p2,\x20float\x20p3)\x20{\x0a\x20\x20\x20\x20vec4\x20tVec4\x20=\x20vec4(1.0,\x20t,\x20t\x20*\x20t,\x20t\x20*\x20t\x20*\x20t);\x0a\x20\x20\x20\x20tVec4\x20=\x20tVec4\x20/\x202.0;\x0a\x20\x20\x20\x20vec4\x20pVec4\x20=\x20vec4(p0,\x20p1,\x20p2,\x20p3);\x0a\x20\x20\x20\x20return\x20dot((tVec4\x20*\x20kernelMatrix),\x20pVec4);\x0a}\x0a\x0afloat\x20calculateB(sampler2D\x20windTexture,\x20float\x20t,\x20float\x20lon,\x20float\x20lat,\x20float\x20lev)\x20{\x0a\x20\x20\x20\x20float\x20lon0\x20=\x20floor(lon)\x20-\x201.0\x20*\x20interval.x;\x0a\x20\x20\x20\x20float\x20lon1\x20=\x20floor(lon);\x0a\x20\x20\x20\x20float\x20lon2\x20=\x20floor(lon)\x20+\x201.0\x20*\x20interval.x;\x0a\x20\x20\x20\x20float\x20lon3\x20=\x20floor(lon)\x20+\x202.0\x20*\x20interval.x;\x0a\x0a\x20\x20\x20\x20float\x20p0\x20=\x20getWind(windTexture,\x20vec3(lon0,\x20lat,\x20lev));\x0a\x20\x20\x20\x20float\x20p1\x20=\x20getWind(windTexture,\x20vec3(lon1,\x20lat,\x20lev));\x0a\x20\x20\x20\x20float\x20p2\x20=\x20getWind(windTexture,\x20vec3(lon2,\x20lat,\x20lev));\x0a\x20\x20\x20\x20float\x20p3\x20=\x20getWind(windTexture,\x20vec3(lon3,\x20lat,\x20lev));\x0a\x0a\x20\x20\x20\x20return\x20oneDimensionInterpolation(t,\x20p0,\x20p1,\x20p2,\x20p3);\x0a}\x0a\x0afloat\x20interpolateOneTexture(sampler2D\x20windTexture,\x20vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20float\x20lon\x20=\x20lonLatLev.x;\x0a\x20\x20\x20\x20float\x20lat\x20=\x20lonLatLev.y;\x0a\x20\x20\x20\x20float\x20lev\x20=\x20lonLatLev.z;\x0a\x0a\x20\x20\x20\x20float\x20lat0\x20=\x20floor(lat)\x20-\x201.0\x20*\x20interval.y;\x0a\x20\x20\x20\x20float\x20lat1\x20=\x20floor(lat);\x0a\x20\x20\x20\x20float\x20lat2\x20=\x20floor(lat)\x20+\x201.0\x20*\x20interval.y;\x0a\x20\x20\x20\x20float\x20lat3\x20=\x20floor(lat)\x20+\x202.0\x20*\x20interval.y;\x0a\x0a\x20\x20\x20\x20vec2\x20coefficient\x20=\x20lonLatLev.xy\x20-\x20floor(lonLatLev.xy);\x0a\x20\x20\x20\x20float\x20b0\x20=\x20calculateB(windTexture,\x20coefficient.x,\x20lon,\x20lat0,\x20lev);\x0a\x20\x20\x20\x20float\x20b1\x20=\x20calculateB(windTexture,\x20coefficient.x,\x20lon,\x20lat1,\x20lev);\x0a\x20\x20\x20\x20float\x20b2\x20=\x20calculateB(windTexture,\x20coefficient.x,\x20lon,\x20lat2,\x20lev);\x0a\x20\x20\x20\x20float\x20b3\x20=\x20calculateB(windTexture,\x20coefficient.x,\x20lon,\x20lat3,\x20lev);\x0a\x0a\x20\x20\x20\x20return\x20oneDimensionInterpolation(coefficient.y,\x20b0,\x20b1,\x20b2,\x20b3);\x0a}\x0a\x0avec3\x20bicubic(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20https://en.wikipedia.org/wiki/Bicubic_interpolation#Bicubic_convolution_algorithm\x0a\x20\x20\x20\x20float\x20u\x20=\x20interpolateOneTexture(U,\x20lonLatLev);\x0a\x20\x20\x20\x20float\x20v\x20=\x20interpolateOneTexture(V,\x20lonLatLev);\x0a\x20\x20\x20\x20float\x20w\x20=\x200.0;\x0a\x20\x20\x20\x20return\x20vec3(u,\x20v,\x20w);\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20\x20\x20vec3\x20lonLatLev\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec3\x20windVector\x20=\x20bicubic(lonLatLev);\x0a\x20\x20\x20\x20out_FragColor\x20=\x20vec4(windVector,\x200.0);\x0a}\x0a','viewport','data','getColorTexture','8892488czhphc','random','vdata','absolute','type','normal','createRenderingTextures','east','depthTexture','resize','tlng','canvasContext','CanvasWindField','drawingBufferHeight','RGB','__esModule','maxParticles','commandToExecute','windData','zIndex','PI_OVER_THREE','particlesNumber','xmin','WindLayer','createCommand','getU','colorTable','pixelFormat','ShaderSource','OPAQUE','tlat','_bilinearInterpolation','_calcUV','canvasWind','visible','vertexShaderSource','PrimitiveType','postProcessingSpeed','north','lighter','fromCache','fragmentShaderSource','_speedRate','windTextures','uniform\x20sampler2D\x20colorTable;\x0a\x0ain\x20float\x20speedNormalization;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20out_FragColor\x20=\x20texture(colorTable,\x20vec2(speedNormalization,\x200.0));\x0a}\x0a','shaderProgram','frameRate','autoClear','clientHeight','_map','DrawCommand','nextTrailsDepth','DepthFunction','isDestroyed','beginPath','6TPECSV','FLOAT','speedFactor','push','getParticles','_animateFrame','fixedHeight','isPointVisible','globeBoundingSphere','globe','outputTexture','getUVByXY','nextTrails','nextParticlesSpeed','age','createTexture','keys','VertexArray','minimum','uniformMap','WindUtil','_onMapWhellEvent','updatePosition','389744znGnFk','particleSystem','maximum','lev','max','4581CggvzR','particles','Math','GeometryAttribute','source','rawRenderState','randomBetween','lineTo','createWindTextures','currentParticlesSpeed','_onMap_preRenderEvent','grid','BufferUsage','defined','lineWidth','geometry','Geometry','_drawLines','stroke','postMessage','getSpeed','808rajGMU','destroy','ComponentDatatype','now','vertexArray','_createCanvas','currentTrails','commandList','EllipsoidalOccluder','forEach','particlesRendering','1107048bFofoC','options','depthMask','lng','ymin','fadeOpacity','TWO_PI','4088PCUrIO','framebuffers','GeometryAttributes','off','PixelDatatype','pixelDatatype','commandType','frameTime','clampToLatitudeRange','speedRate','floor','drawingBufferWidth','cols','show','mod','levmax','worker','PrimitiveCollection','trails','SceneMode','Cartesian3','bindEvent','worldToWindowCoordinates','currentTrailsDepth','particlesComputing','reverseY','in\x20vec2\x20st;\x0a//\x20it\x20is\x20not\x20normal\x20itself,\x20but\x20used\x20to\x20control\x20normal\x0ain\x20vec3\x20normal;\x20//\x20(point\x20to\x20use,\x20offset\x20sign,\x20not\x20used\x20component)\x0a\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20postProcessingPosition;\x0auniform\x20sampler2D\x20postProcessingSpeed;\x0a\x0auniform\x20float\x20particleHeight;\x0a\x0auniform\x20float\x20aspect;\x0auniform\x20float\x20pixelSize;\x0auniform\x20float\x20lineWidth;\x0a\x0aout\x20float\x20speedNormalization;\x0a\x0avec3\x20convertCoordinate(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20WGS84\x20(lon,\x20lat,\x20lev)\x20->\x20ECEF\x20(x,\x20y,\x20z)\x0a\x20\x20\x20\x20//\x20see\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\x20\x20\x20float\x20a\x20=\x206378137.0;\x20//\x20Semi-major\x20axis\x0a\x20\x20\x20\x20float\x20b\x20=\x206356752.3142;\x20//\x20Semi-minor\x20axis\x0a\x20\x20\x20\x20float\x20e2\x20=\x206.69437999014e-3;\x20//\x20First\x20eccentricity\x20squared\x0a\x0a\x20\x20\x20\x20float\x20latitude\x20=\x20radians(lonLatLev.y);\x0a\x20\x20\x20\x20float\x20longitude\x20=\x20radians(lonLatLev.x);\x0a\x0a\x20\x20\x20\x20float\x20cosLat\x20=\x20cos(latitude);\x0a\x20\x20\x20\x20float\x20sinLat\x20=\x20sin(latitude);\x0a\x20\x20\x20\x20float\x20cosLon\x20=\x20cos(longitude);\x0a\x20\x20\x20\x20float\x20sinLon\x20=\x20sin(longitude);\x0a\x0a\x20\x20\x20\x20float\x20N_Phi\x20=\x20a\x20/\x20sqrt(1.0\x20-\x20e2\x20*\x20sinLat\x20*\x20sinLat);\x0a\x20\x20\x20\x20float\x20h\x20=\x20particleHeight;\x20//\x20it\x20should\x20be\x20high\x20enough\x20otherwise\x20the\x20particle\x20may\x20not\x20pass\x20the\x20terrain\x20depth\x20test\x0a\x0a\x20\x20\x20\x20vec3\x20cartesian\x20=\x20vec3(0.0);\x0a\x20\x20\x20\x20cartesian.x\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20cosLon;\x0a\x20\x20\x20\x20cartesian.y\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20sinLon;\x0a\x20\x20\x20\x20cartesian.z\x20=\x20((b\x20*\x20b)\x20/\x20(a\x20*\x20a)\x20*\x20N_Phi\x20+\x20h)\x20*\x20sinLat;\x0a\x20\x20\x20\x20return\x20cartesian;\x0a}\x0a\x0avec4\x20calcProjectedCoordinate(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20the\x20range\x20of\x20longitude\x20in\x20Cesium\x20is\x20[-180,\x20180]\x20but\x20the\x20range\x20of\x20longitude\x20in\x20the\x20NetCDF\x20file\x20is\x20[0,\x20360]\x0a\x20\x20\x20\x20//\x20[0,\x20180]\x20is\x20corresponding\x20to\x20[0,\x20180]\x20and\x20[180,\x20360]\x20is\x20corresponding\x20to\x20[-180,\x200]\x0a\x20\x20\x20\x20lonLatLev.x\x20=\x20mod(lonLatLev.x\x20+\x20180.0,\x20360.0)\x20-\x20180.0;\x0a\x20\x20\x20\x20vec3\x20particlePosition\x20=\x20convertCoordinate(lonLatLev);\x0a\x20\x20\x20\x20vec4\x20projectedCoordinate\x20=\x20czm_modelViewProjection\x20*\x20vec4(particlePosition,\x201.0);\x0a\x20\x20\x20\x20return\x20projectedCoordinate;\x0a}\x0a\x0avec4\x20calcOffset(vec4\x20currentProjectedCoordinate,\x20vec4\x20nextProjectedCoordinate,\x20float\x20offsetSign)\x20{\x0a\x20\x20\x20\x20vec2\x20aspectVec2\x20=\x20vec2(aspect,\x201.0);\x0a\x20\x20\x20\x20vec2\x20currentXY\x20=\x20(currentProjectedCoordinate.xy\x20/\x20currentProjectedCoordinate.w)\x20*\x20aspectVec2;\x0a\x20\x20\x20\x20vec2\x20nextXY\x20=\x20(nextProjectedCoordinate.xy\x20/\x20nextProjectedCoordinate.w)\x20*\x20aspectVec2;\x0a\x0a\x20\x20\x20\x20float\x20offsetLength\x20=\x20lineWidth\x20/\x202.0;\x0a\x20\x20\x20\x20vec2\x20direction\x20=\x20normalize(nextXY\x20-\x20currentXY);\x0a\x20\x20\x20\x20vec2\x20normalVector\x20=\x20vec2(-direction.y,\x20direction.x);\x0a\x20\x20\x20\x20normalVector.x\x20=\x20normalVector.x\x20/\x20aspect;\x0a\x20\x20\x20\x20normalVector\x20=\x20offsetLength\x20*\x20normalVector;\x0a\x0a\x20\x20\x20\x20vec4\x20offset\x20=\x20vec4(offsetSign\x20*\x20normalVector,\x200.0,\x200.0);\x0a\x20\x20\x20\x20return\x20offset;\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20vec2\x20particleIndex\x20=\x20st;\x0a\x0a\x20\x20\x20\x20vec3\x20currentPosition\x20=\x20texture(currentParticlesPosition,\x20particleIndex).rgb;\x0a\x20\x20\x20\x20vec4\x20nextPosition\x20=\x20texture(postProcessingPosition,\x20particleIndex);\x0a\x0a\x20\x20\x20\x20vec4\x20currentProjectedCoordinate\x20=\x20vec4(0.0);\x0a\x20\x20\x20\x20vec4\x20nextProjectedCoordinate\x20=\x20vec4(0.0);\x0a\x20\x20\x20\x20if\x20(nextPosition.w\x20>\x200.0)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20currentProjectedCoordinate\x20=\x20calcProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20\x20\x20\x20\x20nextProjectedCoordinate\x20=\x20calcProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20currentProjectedCoordinate\x20=\x20calcProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20\x20\x20\x20\x20nextProjectedCoordinate\x20=\x20calcProjectedCoordinate(nextPosition.xyz);\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20float\x20pointToUse\x20=\x20normal.x;\x20//\x20-1\x20is\x20currentProjectedCoordinate\x20and\x20+1\x20is\x20nextProjectedCoordinate\x0a\x20\x20\x20\x20float\x20offsetSign\x20=\x20normal.y;\x0a\x0a\x20\x20\x20\x20vec4\x20offset\x20=\x20pixelSize\x20*\x20calcOffset(currentProjectedCoordinate,\x20nextProjectedCoordinate,\x20offsetSign);\x0a\x20\x20\x20\x20if\x20(pointToUse\x20<\x200.0)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_Position\x20=\x20currentProjectedCoordinate\x20+\x20offset;\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_Position\x20=\x20nextProjectedCoordinate\x20+\x20offset;\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20speedNormalization\x20=\x20texture(postProcessingSpeed,\x20particleIndex).a;\x0a}\x0a','lonRange','redraw','uniform\x20sampler2D\x20currentParticlesSpeed;\x20//\x20(u,\x20v,\x20w,\x20normalization)\x0auniform\x20sampler2D\x20particlesWind;\x0a\x0a//\x20used\x20to\x20calculate\x20the\x20wind\x20norm\x0auniform\x20vec2\x20uSpeedRange;\x20//\x20(min,\x20max);\x0auniform\x20vec2\x20vSpeedRange;\x0auniform\x20float\x20pixelSize;\x0auniform\x20float\x20speedFactor;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0afloat\x20calculateWindNorm(vec3\x20speed)\x20{\x0a\x20\x20\x20\x20vec3\x20percent\x20=\x20vec3(0.0);\x0a\x20\x20\x20\x20percent.x\x20=\x20(speed.x\x20-\x20uSpeedRange.x)\x20/\x20(uSpeedRange.y\x20-\x20uSpeedRange.x);\x0a\x20\x20\x20\x20percent.y\x20=\x20(speed.y\x20-\x20vSpeedRange.x)\x20/\x20(vSpeedRange.y\x20-\x20vSpeedRange.x);\x0a\x20\x20\x20\x20float\x20normalization\x20=\x20length(percent);\x0a\x0a\x20\x20\x20\x20return\x20normalization;\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20\x20\x20//\x20vec3\x20currentSpeed\x20=\x20texture(currentParticlesSpeed,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec3\x20windVector\x20=\x20texture(particlesWind,\x20v_textureCoordinates).rgb;\x0a\x0a\x20\x20\x20\x20vec4\x20nextSpeed\x20=\x20vec4(speedFactor\x20*\x20pixelSize\x20*\x20windVector,\x20calculateWindNorm(windVector));\x0a\x20\x20\x20\x20out_FragColor\x20=\x20nextSpeed;\x0a}\x0a','mode','4049940MOYtle','ColorRamp','5645395kYiQRH','canrefresh','colors','_onMouseUpEvent','PixelFormat','refreshTimer','dimensions','_randomParticle','addPrimitives','min','removeAll','Color','getRandomLatLng','isInExtent','primitives','rows','bind','layer','primitiveType','mouseMove','_updateIng','textures','array','setDate','udata','enabled','red','particleHeight','initWorker','globalCompositeOperation','segments','clearCommand','SceneTransforms','Sampler','latRange','EventType','BoundingSphere','_updateIng2','wheel','steps','UNSIGNED_BYTE','colorTextures','west','createRawRenderState','SCENE3D','createParticlesTextures','particlesTextureSize','lat','dimension','LINEAR','randomizeParticles','attributeLocations','windField','fill','viewRectangleToLonLatRange','#ffffff','update','pointer-events','Cesium','lon','ymax','container','dropRateBump'];_0x1251=function(){return _0x3a4ccb;};return _0x1251();}function getV(_0x2bb483,_0x5674fb){function _0x294983(_0x566ccd,_0x1d4387){return _0x1cf6(_0x1d4387- -0x397,_0x566ccd);}const _0xc1dc05=_0x2bb483*Math['sin'](Cesium$7['Math'][_0x294983(-0x215,-0x1f2)](_0x5674fb));return _0xc1dc05;}function getSpeed(_0x397a5a,_0x5632e9){function _0x30d9ed(_0x1566bf,_0x2e5468){return _0x1cf6(_0x1566bf- -0x277,_0x2e5468);}const _0x193e6e=Math['sqrt'](Math[_0x30d9ed(-0xc9,-0xf7)](_0x397a5a,0x2)+Math['pow'](_0x5632e9,0x2));return _0x193e6e;}function getDirection(_0x24bb7b,_0x585d6c){let _0x2353d6=Cesium$7[_0x1ecf12(0x74,0x80)][_0x1ecf12(0x115,0x177)](Math[_0x1ecf12(0x145,0x181)](_0x585d6c,_0x24bb7b));function _0x1ecf12(_0x3956b8,_0x150bcb){return _0x1cf6(_0x3956b8- -0x6b,_0x150bcb);}function _0x3f3fed(_0x36af96,_0x4ec201){return _0x1cf6(_0x36af96- -0x25a,_0x4ec201);}return _0x2353d6+=_0x2353d6<0x0?0x168:0x0,_0x2353d6;}const _0x3cde00={};_0x3cde00['__proto__']=null,_0x3cde00[_0x25a800(0x329,0x3af)]=getU,_0x3cde00['getV']=getV,_0x3cde00[_0x263d96(0x10d,0x10a)]=getSpeed;function _0x25a800(_0x4e8839,_0x5b500b){return _0x1cf6(_0x5b500b-0x1d8,_0x4e8839);}_0x3cde00['getDirection']=getDirection;var WindUtil=_0x3cde00;const Cesium$6=mars3d__namespace['Cesium'];class CustomPrimitive{constructor(_0x11a459){this['commandType']=_0x11a459[_0x4e6b71(0x323,0x32a)],this['geometry']=_0x11a459['geometry'],this['attributeLocations']=_0x11a459['attributeLocations'],this['primitiveType']=_0x11a459[_0x3cb723(0x457,0x3e7)],this[_0x4e6b71(0x2ed,0x350)]=_0x11a459['uniformMap'],this['vertexShaderSource']=_0x11a459[_0x3cb723(0x4b8,0x491)],this['fragmentShaderSource']=_0x11a459[_0x3cb723(0x4af,0x497)],this['rawRenderState']=_0x11a459[_0x3cb723(0x325,0x392)];function _0x3cb723(_0x34fb07,_0x1d1400){return _0x263d96(_0x34fb07,_0x1d1400-0x297);}this['framebuffer']=_0x11a459['framebuffer'],this[_0x4e6b71(0x2e4,0x35d)]=_0x11a459['outputTexture'],this['autoClear']=_0x11a459[_0x3cb723(0x48e,0x49d)]??![],this[_0x3cb723(0x469,0x428)]=_0x11a459[_0x4e6b71(0x391,0x3fa)],this[_0x3cb723(0x33c,0x3c1)]=!![],this['commandToExecute']=undefined,this['clearCommand']=undefined;function _0x4e6b71(_0x1fa037,_0x21588c){return _0x25a800(_0x21588c,_0x1fa037-0x41);}this[_0x3cb723(0x45d,0x49d)]&&(this['clearCommand']=new Cesium$6[(_0x4e6b71(0x3ba,0x39d))]({'color':new Cesium$6[(_0x4e6b71(0x349,0x350))](0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this['framebuffer'],'pass':Cesium$6['Pass']['OPAQUE']}));}['createCommand'](_0x742637){function _0x38b167(_0x48a74a,_0xb879a3){return _0x25a800(_0xb879a3,_0x48a74a- -0x29e);}function _0x3ba53e(_0x3dc910,_0x38719b){return _0x263d96(_0x3dc910,_0x38719b- -0x363);}switch(this['commandType']){case'Draw':{const _0x29faea=Cesium$6['VertexArray'][_0x3ba53e(-0x19d,-0x191)]({'context':_0x742637,'geometry':this[_0x38b167(0x26,-0x15)],'attributeLocations':this[_0x3ba53e(-0x1a3,-0x1f2)],'bufferUsage':Cesium$6['BufferUsage']['STATIC_DRAW']}),_0x53013d={};_0x53013d['context']=_0x742637,_0x53013d['attributeLocations']=this['attributeLocations'],_0x53013d['vertexShaderSource']=this['vertexShaderSource'],_0x53013d['fragmentShaderSource']=this[_0x3ba53e(-0x123,-0x163)];const _0x2d89db=Cesium$6['ShaderProgram'][_0x3ba53e(-0x19d,-0x164)](_0x53013d),_0xde5a57=Cesium$6['RenderState']['fromCache'](this['rawRenderState']);return new Cesium$6[(_0x38b167(0x12a,0xac))]({'primitiveType':this[_0x3ba53e(-0x194,-0x213)],'shaderProgram':_0x2d89db,'vertexArray':_0x29faea,'modelMatrix':Cesium$6['Matrix4'][_0x3ba53e(-0x183,-0x1df)],'renderState':_0xde5a57,'uniformMap':this['uniformMap'],'castShadows':![],'receiveShadows':![],'framebuffer':this[_0x38b167(0xeb,0xd2)],'pass':Cesium$6['Pass'][_0x38b167(0x115,0xb6)],'pickOnly':!![],'owner':this});}case _0x38b167(0xd2,0x71):{const _0x36d85f={};return _0x36d85f['owner']=this,_0x36d85f[_0x3ba53e(-0xe4,-0x163)]=this['fragmentShaderSource'],_0x36d85f['uniformMap']=this['uniformMap'],_0x36d85f[_0x38b167(0x5,-0x87)]=this[_0x3ba53e(-0x1f4,-0x27f)],_0x36d85f['persists']=!![],new Cesium$6['ComputeCommand'](_0x36d85f);}}}['setGeometry'](_0x5356ab,_0x415561){function _0x2bee88(_0x648c5c,_0x3f1306){return _0x263d96(_0x3f1306,_0x648c5c-0x363);}this['geometry']=_0x415561;const _0x539253=Cesium$6[_0x778cf6(0x267,0x2f7)]['fromGeometry']({'context':_0x5356ab,'geometry':this[_0x778cf6(0x38d,0x311)],'attributeLocations':this['attributeLocations'],'bufferUsage':Cesium$6['BufferUsage'][_0x778cf6(0x3c5,0x391)]});function _0x778cf6(_0xaf534f,_0x5f1351){return _0x263d96(_0xaf534f,_0x5f1351-0x20c);}this[_0x2bee88(0x54b,0x58b)][_0x778cf6(0x29e,0x31b)]=_0x539253;}['update'](_0x95328f){if(!this[_0x4773f4(-0x3b,-0x81)])return;function _0x46317e(_0x29691e,_0xefe346){return _0x25a800(_0x29691e,_0xefe346-0x17a);}function _0x4773f4(_0x5b389e,_0x18c6f8){return _0x263d96(_0x5b389e,_0x18c6f8- -0x1ab);}if(_0x95328f['mode']!==Cesium$6['SceneMode']['SCENE3D'])return;!Cesium$6['defined'](this[_0x46317e(0x569,0x521)])&&(this[_0x46317e(0x50a,0x521)]=this[_0x46317e(0x5b2,0x528)](_0x95328f['context'])),Cesium$6['defined'](this['preExecute'])&&this[_0x4773f4(-0x80,-0x1a)](),Cesium$6[_0x4773f4(-0x142,-0xa8)](this[_0x46317e(0x504,0x496)])&&_0x95328f[_0x4773f4(-0x74,-0x99)][_0x46317e(0x434,0x416)](this[_0x46317e(0x408,0x496)]),_0x95328f['commandList'][_0x4773f4(-0x91,-0xce)](this['commandToExecute']);}[_0x263d96(0x1c6,0x20c)](){return![];}[_0x263d96(0x88,0x10c)](){if(this['clearCommand']){var _0x3559bf,_0x336ed9;(_0x3559bf=this['clearCommand'])!==null&&_0x3559bf!==void 0x0&&_0x3559bf['vertexArray']&&this[_0x23c950(0xbd,0x11c)][_0x23c950(0x6f,-0xc)]['destroy'](),(_0x336ed9=this['clearCommand'])!==null&&_0x336ed9!==void 0x0&&_0x336ed9[_0x23c950(0x164,0x1de)]&&this[_0xc1f0d6(0x2aa,0x2e2)]['shaderProgram']['destroy'](),delete this['clearCommand'];}function _0xc1f0d6(_0x304aaf,_0x2836b2){return _0x25a800(_0x2836b2,_0x304aaf- -0x72);}function _0x23c950(_0x4fe988,_0x54cac1){return _0x25a800(_0x54cac1,_0x4fe988- -0x25f);}return this[_0x23c950(0x148,0x193)]&&(this[_0x23c950(0x148,0x168)]['vertexArray']&&this['commandToExecute']['vertexArray']['destroy'](),this[_0xc1f0d6(0x335,0x2e3)]['shaderProgram']&&this['commandToExecute']['shaderProgram']['destroy'](),delete this['commandToExecute']),Cesium$6['destroyObject'](this);}}const Cesium$5=mars3d__namespace['Cesium'],Util=(function(){const _0x211859=function(){function _0x350a1e(_0x3e3f20,_0x269926){return _0x1cf6(_0x3e3f20- -0x2d9,_0x269926);}function _0xfad38c(_0x171187,_0x3713f9){return _0x1cf6(_0x171187-0x320,_0x3713f9);}const _0x6d32d4=new Cesium$5[(_0x350a1e(-0x1ec,-0x221))]({'attributes':new Cesium$5[(_0xfad38c(0x426,0x3fa))]({'position':new Cesium$5['GeometryAttribute']({'componentDatatype':Cesium$5[_0xfad38c(0x414,0x410)][_0xfad38c(0x516,0x4fb)],'componentsPerAttribute':0x3,'values':new Float32Array([-0x1,-0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0,-0x1,0x1,0x0])}),'st':new Cesium$5[(_0x350a1e(-0x1f9,-0x217))]({'componentDatatype':Cesium$5['ComponentDatatype'][_0x350a1e(-0xe3,-0x17c)],'componentsPerAttribute':0x2,'values':new Float32Array([0x0,0x0,0x1,0x0,0x1,0x1,0x0,0x1])})}),'indices':new Uint32Array([0x3,0x2,0x0,0x0,0x2,0x1])});return _0x6d32d4;},_0x231c94=function(_0x14adf9,_0x132252){function _0x413da2(_0x3a3332,_0x218c17){return _0x1cf6(_0x3a3332-0x101,_0x218c17);}if(Cesium$5['defined'](_0x132252)){const _0x15b40d={};_0x15b40d['arrayBufferView']=_0x132252,_0x14adf9[_0x413da2(0x1e2,0x191)]=_0x15b40d;}const _0x524d39=new Cesium$5['Texture'](_0x14adf9);return _0x524d39;},_0x1f0131=function(_0x59a835,_0x33e563,_0x3888b2){const _0x261eb0={};_0x261eb0['context']=_0x59a835,_0x261eb0[_0x53506f(0x355,0x2d4)]=[_0x33e563],_0x261eb0['depthTexture']=_0x3888b2;const _0x3df016=new Cesium$5['Framebuffer'](_0x261eb0);function _0x53506f(_0x9a8056,_0x5a537e){return _0x1cf6(_0x9a8056-0x207,_0x5a537e);}return _0x3df016;},_0x25849d=function(_0x5d6c84){const _0x274717=!![],_0x17a114=![];function _0x1c0369(_0x18633a,_0x3ef73c){return _0x1cf6(_0x3ef73c-0xb2,_0x18633a);}const _0x4f3f54={};_0x4f3f54['viewport']=_0x5d6c84[_0x29672e(0x131,0x185)],_0x4f3f54['depthTest']=_0x5d6c84['depthTest'],_0x4f3f54[_0x1c0369(0x249,0x1b1)]=_0x5d6c84['depthMask'];function _0x29672e(_0x33e22f,_0x2c1187){return _0x1cf6(_0x2c1187- -0x36,_0x33e22f);}_0x4f3f54['blending']=_0x5d6c84['blending'];const _0x2e066f=_0x4f3f54,_0x1122be=Cesium$5['Appearance']['getDefaultRenderState'](_0x274717,_0x17a114,_0x2e066f);return _0x1122be;},_0x240ba8=function(_0x2128d4){const _0x4264a9={},_0x10398c=Cesium$5['Math'][_0x42d091(0x41c,0x413)](_0x2128d4[_0x42d091(0x41a,0x450)],Cesium$5['Math'][_0x42d091(0x37c,0x404)]),_0x4bf4b8=Cesium$5['Math'][_0x42d091(0x3cc,0x413)](_0x2128d4[_0x47ab24(-0x14c,-0x1b8)],Cesium$5['Math'][_0x42d091(0x439,0x404)]),_0x409649=_0x2128d4['width'];let _0x480b4b,_0x11d79c;_0x409649>Cesium$5['Math']['THREE_PI_OVER_TWO']?(_0x480b4b=0x0,_0x11d79c=Cesium$5[_0x47ab24(-0x232,-0x27d)]['TWO_PI']):_0x4bf4b8-_0x10398c<_0x409649?(_0x480b4b=_0x10398c,_0x11d79c=_0x10398c+_0x409649):(_0x480b4b=_0x10398c,_0x11d79c=_0x4bf4b8);_0x4264a9['lon']={'min':Cesium$5[_0x47ab24(-0x232,-0x293)][_0x42d091(0x42e,0x481)](_0x480b4b),'max':Cesium$5[_0x47ab24(-0x232,-0x293)]['toDegrees'](_0x11d79c)};function _0x42d091(_0x1b9acd,_0x575680){return _0x1cf6(_0x575680-0x301,_0x1b9acd);}const _0x43641a=_0x2128d4['south'],_0x3fa5f3=_0x2128d4[_0x47ab24(-0x12d,-0xd5)],_0x49e691=_0x2128d4[_0x42d091(0x4ba,0x46f)],_0x5cdb76=_0x49e691>Cesium$5['Math']['PI']/0xc?_0x49e691/0x2:0x0;let _0x40aa08=Cesium$5[_0x42d091(0x375,0x3e0)][_0x47ab24(-0x205,-0x1dd)](_0x43641a-_0x5cdb76),_0x15712b=Cesium$5['Math']['clampToLatitudeRange'](_0x3fa5f3+_0x5cdb76);_0x40aa08<-Cesium$5[_0x47ab24(-0x232,-0x1af)][_0x47ab24(-0x13f,-0xff)]&&(_0x40aa08=-Cesium$5['Math'][_0x42d091(0x518,0x490)]);function _0x47ab24(_0x1b9cb9,_0x2f7a4d){return _0x1cf6(_0x1b9cb9- -0x311,_0x2f7a4d);}return _0x15712b>Cesium$5[_0x42d091(0x371,0x3e0)]['PI_OVER_THREE']&&(_0x15712b=Cesium$5['Math'][_0x47ab24(-0x182,-0x16d)]),_0x4264a9[_0x47ab24(-0x1bd,-0x245)]={'min':Cesium$5['Math'][_0x42d091(0x45b,0x481)](_0x40aa08),'max':Cesium$5['Math']['toDegrees'](_0x15712b)},_0x4264a9;},_0x4389f9={};_0x4389f9['getFullscreenQuad']=_0x211859;function _0x422e23(_0x41a83f,_0x2d3f78){return _0x25a800(_0x2d3f78,_0x41a83f- -0x578);}return _0x4389f9['createTexture']=_0x231c94,_0x4389f9['createFramebuffer']=_0x1f0131,_0x4389f9['createRawRenderState']=_0x25849d,_0x4389f9[_0x422e23(-0x245,-0x2b5)]=_0x240ba8,_0x4389f9;}());var segmentDraw_vert=_0x25a800(0x330,0x2f6),segmentDraw_frag=_0x263d96(0x1fe,0x203),fullscreen_vert='in\x20vec3\x20position;\x0ain\x20vec2\x20st;\x0a\x0aout\x20vec2\x20textureCoordinate;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20textureCoordinate\x20=\x20st;\x0a\x20\x20\x20\x20gl_Position\x20=\x20vec4(position,\x201.0);\x0a}\x0a',trailDraw_frag='uniform\x20sampler2D\x20segmentsColorTexture;\x0auniform\x20sampler2D\x20segmentsDepthTexture;\x0a\x0auniform\x20sampler2D\x20currentTrailsColor;\x0auniform\x20sampler2D\x20trailsDepthTexture;\x0a\x0auniform\x20float\x20fadeOpacity;\x0a\x0ain\x20vec2\x20textureCoordinate;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20vec4\x20pointsColor\x20=\x20texture(segmentsColorTexture,\x20textureCoordinate);\x0a\x20\x20\x20\x20vec4\x20trailsColor\x20=\x20texture(currentTrailsColor,\x20textureCoordinate);\x0a\x0a\x20\x20\x20\x20trailsColor\x20=\x20floor(fadeOpacity\x20*\x20255.0\x20*\x20trailsColor)\x20/\x20255.0;\x20//\x20make\x20sure\x20the\x20trailsColor\x20will\x20be\x20strictly\x20decreased\x0a\x0a\x20\x20\x20\x20float\x20pointsDepth\x20=\x20texture(segmentsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20\x20\x20float\x20trailsDepth\x20=\x20texture(trailsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture(czm_globeDepthTexture,\x20textureCoordinate));\x0a\x0a\x20\x20\x20\x20out_FragColor\x20=\x20vec4(0.0);\x0a\x20\x20\x20\x20if\x20(pointsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20out_FragColor\x20=\x20out_FragColor\x20+\x20pointsColor;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20if\x20(trailsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20out_FragColor\x20=\x20out_FragColor\x20+\x20trailsColor;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20gl_FragDepth\x20=\x20min(pointsDepth,\x20trailsDepth);\x0a}\x0a',screenDraw_frag=_0x263d96(0x242,0x1bc);const Cesium$4=mars3d__namespace['Cesium'];function _0x263d96(_0x4145af,_0x80e01c){return _0x1cf6(_0x80e01c-0x19,_0x4145af);}class ParticlesRendering{constructor(_0x109a1f,_0x2b7ede,_0x212619,_0x5a4b45,_0x403529){function _0x554e95(_0x127a0e,_0x35a09e){return _0x263d96(_0x35a09e,_0x127a0e-0x296);}this['createRenderingTextures'](_0x109a1f,_0x2b7ede,_0x212619[_0x96ce50(-0x22f,-0x270)]);function _0x96ce50(_0x34ab73,_0x22c468){return _0x263d96(_0x34ab73,_0x22c468- -0x3b0);}this[_0x554e95(0x44a,0x499)](_0x109a1f),this[_0x96ce50(-0x16d,-0x202)](_0x109a1f,_0x212619,_0x5a4b45,_0x403529);}[_0x25a800(0x377,0x39c)](_0x4e8cd8,_0x64ebe7,_0x172811){function _0x3092fb(_0x3a5eba,_0x1d26dd){return _0x25a800(_0x3a5eba,_0x1d26dd- -0x572);}const _0x2c8bae={};_0x2c8bae['context']=_0x4e8cd8,_0x2c8bae['width']=_0x4e8cd8['drawingBufferWidth'],_0x2c8bae['height']=_0x4e8cd8[_0x3092fb(-0x150,-0x1cf)];function _0x4e3a88(_0x381152,_0x3bdbd7){return _0x25a800(_0x381152,_0x3bdbd7- -0x7a);}_0x2c8bae['pixelFormat']=Cesium$4['PixelFormat']['RGBA'],_0x2c8bae[_0x3092fb(-0x22d,-0x291)]=Cesium$4['PixelDatatype'][_0x4e3a88(0x32e,0x2ab)];const _0x471f74=_0x2c8bae,_0x485d63={};_0x485d63['context']=_0x4e8cd8,_0x485d63[_0x4e3a88(0x319,0x300)]=_0x4e8cd8[_0x4e3a88(0x20a,0x26d)],_0x485d63['height']=_0x4e8cd8['drawingBufferHeight'],_0x485d63[_0x4e3a88(0x348,0x337)]=Cesium$4[_0x3092fb(-0x228,-0x271)]['DEPTH_COMPONENT'],_0x485d63[_0x3092fb(-0x22b,-0x291)]=Cesium$4[_0x4e3a88(0x272,0x266)]['UNSIGNED_INT'];const _0x16baf8=_0x485d63,_0x2124cb=_0x172811['length'],_0x19c3ce=new Float32Array(_0x2124cb*0x3);for(let _0x11044e=0x0;_0x11044e<_0x2124cb;_0x11044e++){const _0x3af621=Cesium$4[_0x3092fb(-0x2b3,-0x26a)][_0x4e3a88(0x287,0x310)](_0x172811[_0x11044e]);_0x19c3ce[0x3*_0x11044e]=_0x3af621[_0x4e3a88(0x26c,0x29d)],_0x19c3ce[0x3*_0x11044e+0x1]=_0x3af621['green'],_0x19c3ce[0x3*_0x11044e+0x2]=_0x3af621['blue'];}const _0x2abb6c={'context':_0x4e8cd8,'width':_0x2124cb,'height':0x1,'pixelFormat':Cesium$4['PixelFormat'][_0x4e3a88(0x3bf,0x32a)],'pixelDatatype':Cesium$4['PixelDatatype'][_0x4e3a88(0x343,0x354)],'sampler':new Cesium$4[(_0x4e3a88(0x26b,0x2a4))]({'minificationFilter':Cesium$4['TextureMinificationFilter']['LINEAR'],'magnificationFilter':Cesium$4['TextureMagnificationFilter'][_0x4e3a88(0x2aa,0x2b4)]})};this['textures']={'segmentsColor':Util[_0x3092fb(-0x310,-0x2ca)](_0x471f74),'segmentsDepth':Util[_0x3092fb(-0x2ee,-0x2ca)](_0x16baf8),'currentTrailsColor':Util[_0x4e3a88(0x2c7,0x22e)](_0x471f74),'currentTrailsDepth':Util['createTexture'](_0x16baf8),'nextTrailsColor':Util[_0x3092fb(-0x32a,-0x2ca)](_0x471f74),'nextTrailsDepth':Util[_0x4e3a88(0x1cb,0x22e)](_0x16baf8),'colorTable':Util['createTexture'](_0x2abb6c,_0x19c3ce)};}[_0x25a800(0x3e4,0x373)](_0x356201){function _0x41f3cc(_0x5c1eee,_0x2d373c){return _0x263d96(_0x2d373c,_0x5c1eee- -0x2f1);}function _0x4e95da(_0x1019ed,_0xecdad8){return _0x25a800(_0x1019ed,_0xecdad8- -0x517);}this['framebuffers']={'segments':Util['createFramebuffer'](_0x356201,this['textures']['segmentsColor'],this[_0x4e95da(-0x271,-0x205)]['segmentsDepth']),'currentTrails':Util['createFramebuffer'](_0x356201,this[_0x41f3cc(-0x19e,-0x10f)][_0x4e95da(-0x1d0,-0x1db)],this['textures'][_0x41f3cc(-0x1bd,-0x180)]),'nextTrails':Util['createFramebuffer'](_0x356201,this[_0x41f3cc(-0x19e,-0x1dc)]['nextTrailsColor'],this['textures'][_0x4e95da(-0x127,-0x14e)])};}['createSegmentsGeometry'](_0x1d071f){const _0x59ab9b=0x4;let _0x2f570d=[];for(let _0x13cea9=0x0;_0x13cea9<_0x1d071f['particlesTextureSize'];_0x13cea9++){for(let _0x3c3e5a=0x0;_0x3c3e5a<_0x1d071f['particlesTextureSize'];_0x3c3e5a++){for(let _0x4b8156=0x0;_0x4b8156<_0x59ab9b;_0x4b8156++){_0x2f570d[_0x33b9ea(0x3c0,0x458)](_0x13cea9/_0x1d071f['particlesTextureSize']),_0x2f570d[_0x33b9ea(0x4c3,0x458)](_0x3c3e5a/_0x1d071f['particlesTextureSize']);}}}_0x2f570d=new Float32Array(_0x2f570d);let _0x29cff0=[];const _0x54f550=[-0x1,0x1],_0x4622bf=[-0x1,0x1];function _0x487750(_0x5867f6,_0x174ba7){return _0x25a800(_0x5867f6,_0x174ba7-0x1a5);}for(let _0x1291bc=0x0;_0x1291bc<_0x1d071f['maxParticles'];_0x1291bc++){for(let _0x298637=0x0;_0x298637<_0x59ab9b/0x2;_0x298637++){for(let _0x4d4613=0x0;_0x4d4613<_0x59ab9b/0x2;_0x4d4613++){_0x29cff0[_0x33b9ea(0x462,0x458)](_0x54f550[_0x298637]),_0x29cff0['push'](_0x4622bf[_0x4d4613]),_0x29cff0['push'](0x0);}}}_0x29cff0=new Float32Array(_0x29cff0);const _0x5a8361=0x6*_0x1d071f[_0x487750(0x57e,0x54b)],_0x38d47d=new Uint32Array(_0x5a8361);function _0x33b9ea(_0x1c8616,_0x34d0e8){return _0x25a800(_0x1c8616,_0x34d0e8-0x1bc);}for(let _0x1875f1=0x0,_0x1103b0=0x0,_0x2f45f6=0x0;_0x1875f1<_0x1d071f[_0x487750(0x4dd,0x54b)];_0x1875f1++){_0x38d47d[_0x1103b0++]=_0x2f45f6+0x0,_0x38d47d[_0x1103b0++]=_0x2f45f6+0x1,_0x38d47d[_0x1103b0++]=_0x2f45f6+0x2,_0x38d47d[_0x1103b0++]=_0x2f45f6+0x2,_0x38d47d[_0x1103b0++]=_0x2f45f6+0x1,_0x38d47d[_0x1103b0++]=_0x2f45f6+0x3,_0x2f45f6+=0x4;}const _0x4e212c=new Cesium$4[(_0x487750(0x45b,0x46a))]({'attributes':new Cesium$4['GeometryAttributes']({'st':new Cesium$4['GeometryAttribute']({'componentDatatype':Cesium$4['ComponentDatatype'][_0x33b9ea(0x546,0x58a)],'componentsPerAttribute':0x2,'values':_0x2f570d}),'normal':new Cesium$4['GeometryAttribute']({'componentDatatype':Cesium$4['ComponentDatatype'][_0x33b9ea(0x59a,0x58a)],'componentsPerAttribute':0x3,'values':_0x29cff0})}),'indices':_0x38d47d});return _0x4e212c;}['createRenderingPrimitives'](_0x400152,_0x968700,_0x2fac85,_0x3b5e35){const _0x2325ba=this,_0x9bb59={};_0x9bb59['st']=0x0,_0x9bb59[_0xe15eae(0x2af,0x2cb)]=0x1;const _0x5d8e13={};_0x5d8e13['sources']=[segmentDraw_vert];const _0x91a44e={};function _0xe15eae(_0x48f655,_0x2a9abc){return _0x25a800(_0x48f655,_0x2a9abc- -0xd0);}_0x91a44e[_0x52ca18(-0x1e,0x21)]=[segmentDraw_frag];const _0xb1c98b={};_0xb1c98b[_0x52ca18(-0x68,-0x2)]=!![];const _0x3fb6a0={};_0x3fb6a0['viewport']=undefined,_0x3fb6a0['depthTest']=_0xb1c98b,_0x3fb6a0[_0x52ca18(-0xa7,-0x43)]=!![];const _0x510aaf={};_0x510aaf['position']=0x0,_0x510aaf['st']=0x1;const _0x3153d3={};_0x3153d3['defines']=[_0x52ca18(-0x25,-0x12)],_0x3153d3['sources']=[fullscreen_vert];const _0x259d05={};_0x259d05['defines']=[_0xe15eae(0x218,0x275)],_0x259d05[_0x52ca18(-0x1e,-0xa0)]=[trailDraw_frag];const _0x5423df={};_0x5423df['position']=0x0,_0x5423df['st']=0x1;const _0x18e139={};_0x18e139['defines']=[_0xe15eae(0x222,0x289)],_0x18e139[_0x52ca18(-0x1e,-0x84)]=[fullscreen_vert];const _0x1c26fc={};_0x1c26fc[_0x52ca18(-0x1f,0xa)]=['DISABLE_LOG_DEPTH_FRAGMENT_WRITE'],_0x1c26fc['sources']=[screenDraw_frag];const _0x3df0de={};_0x3df0de['enabled']=![];function _0x52ca18(_0x3b08b1,_0x10849d){return _0x263d96(_0x10849d,_0x3b08b1- -0x1bf);}const _0x5aab1d={};_0x5aab1d['enabled']=!![],this['primitives']={'segments':new CustomPrimitive({'commandType':_0xe15eae(0x2f3,0x27f),'attributeLocations':_0x9bb59,'geometry':this[_0x52ca18(-0x1a,-0x9f)](_0x968700),'primitiveType':Cesium$4['PrimitiveType']['TRIANGLES'],'uniformMap':{'currentParticlesPosition':function(){return _0x3b5e35['particlesTextures']['currentParticlesPosition'];},'postProcessingPosition':function(){function _0x227752(_0x26df42,_0x38e834){return _0x52ca18(_0x38e834-0x335,_0x26df42);}return _0x3b5e35['particlesTextures'][_0x227752(0x38e,0x342)];},'postProcessingSpeed':function(){function _0xfa7c1b(_0x5a5433,_0x243229){return _0x52ca18(_0x243229- -0x188,_0x5a5433);}return _0x3b5e35[_0xfa7c1b(-0x174,-0x1bf)]['postProcessingSpeed'];},'colorTable':function(){function _0x5481e4(_0x6372bf,_0x35979e){return _0x52ca18(_0x35979e-0x3c3,_0x6372bf);}function _0x48dc95(_0x5d77e9,_0x107935){return _0xe15eae(_0x5d77e9,_0x107935-0x277);}return _0x2325ba[_0x48dc95(0x530,0x4b9)][_0x5481e4(0x42f,0x3f5)];},'aspect':function(){return _0x400152['drawingBufferWidth']/_0x400152['drawingBufferHeight'];},'pixelSize':function(){return _0x2fac85['pixelSize'];},'lineWidth':function(){return _0x968700['lineWidth'];},'particleHeight':function(){function _0x4c3592(_0x52bf04,_0x45406c){return _0xe15eae(_0x52bf04,_0x45406c- -0x347);}return _0x968700[_0x4c3592(-0xc3,-0xff)];}},'vertexShaderSource':new Cesium$4[(_0x52ca18(0x34,0x4b))](_0x5d8e13),'fragmentShaderSource':new Cesium$4[(_0x52ca18(0x34,0x1e))](_0x91a44e),'rawRenderState':Util['createRawRenderState'](_0x3fb6a0),'framebuffer':this['framebuffers']['segments'],'autoClear':!![]}),'trails':new CustomPrimitive({'commandType':_0x52ca18(-0x2f,0x14),'attributeLocations':_0x510aaf,'geometry':Util[_0xe15eae(0x220,0x2a7)](),'primitiveType':Cesium$4[_0x52ca18(0x3c,-0x4a)]['TRIANGLES'],'uniformMap':{'segmentsColorTexture':function(){function _0x4e2c90(_0x137734,_0x272163){return _0x52ca18(_0x137734- -0xf6,_0x272163);}return _0x2325ba[_0x4e2c90(-0x162,-0x165)]['segmentsColor'];},'segmentsDepthTexture':function(){return _0x2325ba['textures']['segmentsDepth'];},'currentTrailsColor':function(){function _0x517fcc(_0x1ceb7d,_0x49ba66){return _0x52ca18(_0x49ba66-0x1ae,_0x1ceb7d);}function _0x1e413a(_0x3b7d69,_0x13f251){return _0xe15eae(_0x13f251,_0x3b7d69-0x3e);}return _0x2325ba[_0x1e413a(0x24b,0x25b)]['currentTrails'][_0x1e413a(0x303,0x28e)](0x0);},'trailsDepthTexture':function(){return _0x2325ba['framebuffers']['currentTrails']['depthTexture'];},'fadeOpacity':function(){function _0x3f1ba6(_0x2656cb,_0xb47af2){return _0xe15eae(_0xb47af2,_0x2656cb- -0x30c);}return _0x968700[_0x3f1ba6(-0x102,-0xd6)];}},'vertexShaderSource':new Cesium$4['ShaderSource'](_0x3153d3),'fragmentShaderSource':new Cesium$4['ShaderSource'](_0x259d05),'rawRenderState':Util[_0x52ca18(-0x56,0x6)]({'viewport':undefined,'depthTest':{'enabled':!![],'func':Cesium$4[_0xe15eae(0x380,0x2fa)]['ALWAYS']},'depthMask':!![]}),'framebuffer':this[_0xe15eae(0x297,0x20d)][_0xe15eae(0x14c,0x1d5)],'autoClear':!![],'preExecute':function(){const _0x396c9a=_0x2325ba[_0x5f3caa(0x1f0,0x1c5)][_0x5f3caa(0x15c,0x1b8)];_0x2325ba[_0x5f3caa(0x20e,0x1c5)][_0x46c1df(0x168,0x1bd)]=_0x2325ba[_0x46c1df(0x254,0x1ca)]['nextTrails'];function _0x46c1df(_0x4bc1f9,_0x4df17c){return _0x52ca18(_0x4df17c-0x26b,_0x4bc1f9);}function _0x5f3caa(_0x193f0b,_0x30d6aa){return _0x52ca18(_0x30d6aa-0x266,_0x193f0b);}_0x2325ba[_0x46c1df(0x150,0x1ca)]['nextTrails']=_0x396c9a,_0x2325ba['primitives']['trails']['commandToExecute']['framebuffer']=_0x2325ba['framebuffers'][_0x46c1df(0x11c,0x192)],_0x2325ba['primitives'][_0x5f3caa(0x192,0x1d6)][_0x46c1df(0x276,0x209)][_0x5f3caa(0x2d6,0x271)]=_0x2325ba['framebuffers']['nextTrails'];}}),'screen':new CustomPrimitive({'commandType':_0xe15eae(0x2bb,0x27f),'attributeLocations':_0x5423df,'geometry':Util['getFullscreenQuad'](),'primitiveType':Cesium$4['PrimitiveType']['TRIANGLES'],'uniformMap':{'trailsColorTexture':function(){function _0x3132ec(_0x1f292d,_0x331d34){return _0xe15eae(_0x331d34,_0x1f292d- -0x273);}return _0x2325ba['framebuffers'][_0x3132ec(-0x9e,-0xf4)]['getColorTexture'](0x0);},'trailsDepthTexture':function(){function _0x4f5499(_0x2c45ca,_0x18abb0){return _0xe15eae(_0x2c45ca,_0x18abb0-0x280);}function _0x5c54d4(_0x5b7ea6,_0x1733e9){return _0x52ca18(_0x1733e9-0x31a,_0x5b7ea6);}return _0x2325ba[_0x4f5499(0x480,0x48d)][_0x5c54d4(0x297,0x241)][_0x5c54d4(0x3c1,0x33a)];}},'vertexShaderSource':new Cesium$4[(_0x52ca18(0x34,0x32))](_0x18e139),'fragmentShaderSource':new Cesium$4[(_0xe15eae(0x29d,0x2e2))](_0x1c26fc),'rawRenderState':Util['createRawRenderState']({'viewport':undefined,'depthTest':_0x3df0de,'depthMask':!![],'blending':_0x5aab1d}),'framebuffer':undefined})};}}var getWind_frag=_0x25a800(0x301,0x392),updateSpeed_frag=_0x25a800(0x325,0x2f9),updatePosition_frag='uniform\x20sampler2D\x20currentParticlesPosition;\x20//\x20(lon,\x20lat,\x20lev)\x0auniform\x20sampler2D\x20currentParticlesSpeed;\x20//\x20(u,\x20v,\x20w,\x20normalization)\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0avec2\x20lengthOfLonLat(vec3\x20lonLatLev)\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\x20\x20\x20float\x20latitude\x20=\x20radians(lonLatLev.y);\x0a\x0a\x20\x20\x20\x20float\x20term1\x20=\x20111132.92;\x0a\x20\x20\x20\x20float\x20term2\x20=\x20559.82\x20*\x20cos(2.0\x20*\x20latitude);\x0a\x20\x20\x20\x20float\x20term3\x20=\x201.175\x20*\x20cos(4.0\x20*\x20latitude);\x0a\x20\x20\x20\x20float\x20term4\x20=\x200.0023\x20*\x20cos(6.0\x20*\x20latitude);\x0a\x20\x20\x20\x20float\x20latLength\x20=\x20term1\x20-\x20term2\x20+\x20term3\x20-\x20term4;\x0a\x0a\x20\x20\x20\x20float\x20term5\x20=\x20111412.84\x20*\x20cos(latitude);\x0a\x20\x20\x20\x20float\x20term6\x20=\x2093.5\x20*\x20cos(3.0\x20*\x20latitude);\x0a\x20\x20\x20\x20float\x20term7\x20=\x200.118\x20*\x20cos(5.0\x20*\x20latitude);\x0a\x20\x20\x20\x20float\x20longLength\x20=\x20term5\x20-\x20term6\x20+\x20term7;\x0a\x0a\x20\x20\x20\x20return\x20vec2(longLength,\x20latLength);\x0a}\x0a\x0avoid\x20updatePosition(vec3\x20lonLatLev,\x20vec3\x20speed)\x20{\x0a\x20\x20\x20\x20vec2\x20lonLatLength\x20=\x20lengthOfLonLat(lonLatLev);\x0a\x20\x20\x20\x20float\x20u\x20=\x20speed.x\x20/\x20lonLatLength.x;\x0a\x20\x20\x20\x20float\x20v\x20=\x20speed.y\x20/\x20lonLatLength.y;\x0a\x20\x20\x20\x20float\x20w\x20=\x200.0;\x0a\x20\x20\x20\x20vec3\x20windVectorInLonLatLev\x20=\x20vec3(u,\x20v,\x20w);\x0a\x0a\x20\x20\x20\x20vec3\x20nextParticle\x20=\x20lonLatLev\x20+\x20windVectorInLonLatLev;\x0a\x0a\x20\x20\x20\x20out_FragColor\x20=\x20vec4(nextParticle,\x200.0);\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20\x20\x20vec3\x20lonLatLev\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec3\x20speed\x20=\x20texture(currentParticlesSpeed,\x20v_textureCoordinates).rgb;\x0a\x0a\x20\x20\x20\x20updatePosition(lonLatLev,\x20speed);\x0a}\x0a',postProcessingPosition_frag=_0x25a800(0x368,0x390),postProcessingSpeed_frag='uniform\x20sampler2D\x20postProcessingPosition;\x0auniform\x20sampler2D\x20nextParticlesSpeed;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20vec4\x20randomParticle\x20=\x20texture(postProcessingPosition,\x20v_textureCoordinates);\x0a\x20\x20\x20\x20vec4\x20particleSpeed\x20=\x20texture(nextParticlesSpeed,\x20v_textureCoordinates);\x0a\x0a\x20\x20\x20\x20if\x20(randomParticle.a\x20>\x200.0)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20out_FragColor\x20=\x20vec4(0.0);\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20out_FragColor\x20=\x20particleSpeed;\x0a\x20\x20\x20\x20}\x0a}\x0a';const Cesium$3=mars3d__namespace[_0x25a800(0x38e,0x337)];class ParticlesComputing{constructor(_0x5e0d8a,_0x2bf610,_0x4049c0,_0x3ae052){this['data']=_0x2bf610,this[_0x25cd0c(0x20a,0x285)](_0x5e0d8a,_0x2bf610);function _0x25cd0c(_0x2e264e,_0x3de03a){return _0x25a800(_0x2e264e,_0x3de03a- -0x38);}this[_0x25cd0c(0x30f,0x2f2)](_0x5e0d8a,_0x4049c0,_0x3ae052);function _0x2389ea(_0x2a7387,_0x43e4aa){return _0x263d96(_0x2a7387,_0x43e4aa-0x54);}this['createComputingPrimitives'](_0x2bf610,_0x4049c0,_0x3ae052);}['createWindTextures'](_0x26de40,_0x30d955){const _0xe53f4f={'context':_0x26de40,'width':_0x30d955[_0x48d021(0x24,-0x73)][_0x48d021(0xf,-0x3e)],'height':_0x30d955[_0x1abdb5(0x37f,0x2ff)]['lat']*(_0x30d955[_0x48d021(-0xd5,-0x73)]['lev']||0x1),'pixelFormat':Cesium$3[_0x1abdb5(0x37d,0x352)]['LUMINANCE'],'pixelDatatype':Cesium$3['PixelDatatype'][_0x48d021(0x4f,0x58)],'flipY':![],'sampler':new Cesium$3['Sampler']({'minificationFilter':Cesium$3['TextureMinificationFilter']['NEAREST'],'magnificationFilter':Cesium$3['TextureMagnificationFilter']['NEAREST']})};function _0x48d021(_0x206f53,_0xcc6787){return _0x263d96(_0x206f53,_0xcc6787- -0x1b7);}function _0x1abdb5(_0x3db124,_0x364186){return _0x25a800(_0x364186,_0x3db124-0x7c);}this['windTextures']={'U':Util['createTexture'](_0xe53f4f,_0x30d955['U'][_0x48d021(-0x87,-0x63)]),'V':Util['createTexture'](_0xe53f4f,_0x30d955['V']['array'])};}[_0x263d96(0x113,0x16b)](_0x3a9a55,_0x3ae15d,_0x4638e7){const _0x228c4d={'context':_0x3a9a55,'width':_0x3ae15d['particlesTextureSize'],'height':_0x3ae15d['particlesTextureSize'],'pixelFormat':Cesium$3['PixelFormat']['RGBA'],'pixelDatatype':Cesium$3['PixelDatatype']['FLOAT'],'flipY':![],'sampler':new Cesium$3['Sampler']({'minificationFilter':Cesium$3['TextureMinificationFilter']['NEAREST'],'magnificationFilter':Cesium$3['TextureMagnificationFilter']['NEAREST']})};function _0x1dcbc8(_0x17e7f5,_0x2bead5){return _0x25a800(_0x2bead5,_0x17e7f5- -0x2c7);}function _0x7f286d(_0x2b803e,_0x4d5612){return _0x25a800(_0x2b803e,_0x4d5612-0x1fd);}const _0xf90581=this['randomizeParticles'](_0x3ae15d['maxParticles'],_0x4638e7),_0x5bc7d6=new Float32Array(0x4*_0x3ae15d['maxParticles'])[_0x1dcbc8(0x6b,0x34)](0x0);this['particlesTextures']={'particlesWind':Util['createTexture'](_0x228c4d),'currentParticlesPosition':Util['createTexture'](_0x228c4d,_0xf90581),'nextParticlesPosition':Util['createTexture'](_0x228c4d,_0xf90581),'currentParticlesSpeed':Util[_0x1dcbc8(-0x1f,-0x34)](_0x228c4d,_0x5bc7d6),'nextParticlesSpeed':Util[_0x7f286d(0x4a9,0x4a5)](_0x228c4d,_0x5bc7d6),'postProcessingPosition':Util['createTexture'](_0x228c4d,_0xf90581),'postProcessingSpeed':Util[_0x1dcbc8(-0x1f,0x78)](_0x228c4d,_0x5bc7d6)};}[_0x25a800(0x378,0x32f)](_0x569d1d,_0x2bf6ed){const _0x38e62c=new Float32Array(0x4*_0x569d1d);function _0x2e55b8(_0x26a1ec,_0x30c38e){return _0x25a800(_0x30c38e,_0x26a1ec-0x1d1);}function _0x269b63(_0x49b377,_0x2b8790){return _0x25a800(_0x49b377,_0x2b8790-0x82);}for(let _0x47fa67=0x0;_0x47fa67<_0x569d1d;_0x47fa67++){_0x38e62c[0x4*_0x47fa67]=Cesium$3['Math']['randomBetween'](_0x2bf6ed['lonRange']['x'],_0x2bf6ed[_0x2e55b8(0x4c8,0x490)]['y']),_0x38e62c[0x4*_0x47fa67+0x1]=Cesium$3[_0x269b63(0x398,0x339)][_0x269b63(0x3cc,0x33d)](_0x2bf6ed[_0x269b63(0x360,0x3a1)]['x'],_0x2bf6ed[_0x269b63(0x41d,0x3a1)]['y']),_0x38e62c[0x4*_0x47fa67+0x2]=Cesium$3['Math']['randomBetween'](this['data'][_0x2e55b8(0x484,0x3ec)][_0x269b63(0x390,0x388)],this['data']['lev']['max']),_0x38e62c[0x4*_0x47fa67+0x3]=0x0;}return _0x38e62c;}['destroyParticlesTextures'](){Object['keys'](this['particlesTextures'])['forEach'](_0x5e822b=>{function _0x1507f9(_0x56507e,_0x8f90e3){return _0x1cf6(_0x8f90e3- -0x34b,_0x56507e);}this[_0x1507f9(-0x1f6,-0x1dc)][_0x5e822b]['destroy']();});}['createComputingPrimitives'](_0x28885e,_0x179fee,_0x249871){const _0x47d1d2=new Cesium$3['Cartesian3'](_0x28885e['dimensions'][_0x5897fe(0x2b4,0x309)],_0x28885e['dimensions'][_0x5956a1(0x326,0x397)],_0x28885e['dimensions']['lev']),_0xd964f5=new Cesium$3['Cartesian3'](_0x28885e[_0x5956a1(0x3c5,0x3a3)][_0x5956a1(0x387,0x371)],_0x28885e['lat'][_0x5897fe(0x2c1,0x2d7)],_0x28885e['lev']['min']),_0x1f7e61=new Cesium$3['Cartesian3'](_0x28885e[_0x5897fe(0x2d5,0x309)][_0x5956a1(0x3af,0x31f)],_0x28885e[_0x5956a1(0x355,0x397)]['max'],_0x28885e['lev'][_0x5956a1(0x2a6,0x31f)]),_0x3942a2=new Cesium$3['Cartesian3']((_0x1f7e61['x']-_0xd964f5['x'])/(_0x47d1d2['x']-0x1),(_0x1f7e61['y']-_0xd964f5['y'])/(_0x47d1d2['y']-0x1),_0x47d1d2['z']>0x1?(_0x1f7e61['z']-_0xd964f5['z'])/(_0x47d1d2['z']-0x1):0x1),_0xf68c70=new Cesium$3[(_0x5956a1(0x3f4,0x3ef))](_0x28885e['U'][_0x5897fe(0x2ec,0x2d7)],_0x28885e['U']['max']),_0x1eba7e=new Cesium$3['Cartesian2'](_0x28885e['V']['min'],_0x28885e['V'][_0x5956a1(0x28d,0x31f)]),_0x494dd9=this,_0xf31ab1={};_0xf31ab1['U']=function(){return _0x494dd9['windTextures']['U'];},_0xf31ab1['V']=function(){function _0x3aa6ad(_0x4aea15,_0x348ec6){return _0x5897fe(_0x348ec6,_0x4aea15- -0x2aa);}return _0x494dd9[_0x3aa6ad(0xe8,0x165)]['V'];},_0xf31ab1[_0x5897fe(0x345,0x30f)]=function(){return _0x494dd9['particlesTextures']['currentParticlesPosition'];};function _0x5956a1(_0x503b1c,_0x5e673f){return _0x25a800(_0x503b1c,_0x5e673f-0x6b);}_0xf31ab1[_0x5897fe(0x322,0x2fe)]=function(){return _0x47d1d2;},_0xf31ab1[_0x5897fe(0x2bb,0x27c)]=function(){return _0xd964f5;},_0xf31ab1[_0x5897fe(0x213,0x283)]=function(){return _0x1f7e61;},_0xf31ab1['interval']=function(){return _0x3942a2;};const _0x253cb6={};_0x253cb6['sources']=[getWind_frag];const _0x3f3d7a={};_0x3f3d7a['sources']=[updateSpeed_frag];function _0x5897fe(_0x15d444,_0x3637b7){return _0x263d96(_0x15d444,_0x3637b7-0x190);}const _0x2a1860={};_0x2a1860[_0x5956a1(0x431,0x3cb)]=[updatePosition_frag];const _0x5adb1e={};_0x5adb1e[_0x5897fe(0x31b,0x331)]=[postProcessingPosition_frag];const _0x3a95f1={};_0x3a95f1['sources']=[postProcessingSpeed_frag],this['primitives']={'getWind':new CustomPrimitive({'commandType':'Compute','uniformMap':_0xf31ab1,'fragmentShaderSource':new Cesium$3['ShaderSource'](_0x253cb6),'outputTexture':this['particlesTextures']['particlesWind'],'preExecute':function(){function _0x2ab117(_0x3c2587,_0xbef4ff){return _0x5956a1(_0xbef4ff,_0x3c2587- -0x300);}function _0x1018ec(_0x479dc5,_0x4f49b8){return _0x5897fe(_0x4f49b8,_0x479dc5- -0x36c);}_0x494dd9['primitives']['getWind'][_0x2ab117(0x112,0xc2)][_0x2ab117(0xe,-0x46)]=_0x494dd9['particlesTextures']['particlesWind'];}}),'updateSpeed':new CustomPrimitive({'commandType':_0x5897fe(0x360,0x341),'uniformMap':{'currentParticlesSpeed':function(){return _0x494dd9['particlesTextures']['currentParticlesSpeed'];},'particlesWind':function(){return _0x494dd9['particlesTextures']['particlesWind'];},'uSpeedRange':function(){return _0xf68c70;},'vSpeedRange':function(){return _0x1eba7e;},'pixelSize':function(){function _0x5217cb(_0x190261,_0x35cc03){return _0x5956a1(_0x190261,_0x35cc03- -0x18b);}return _0x249871[_0x5217cb(0x1d7,0x21d)];},'speedFactor':function(){return _0x179fee['speedFactor'];}},'fragmentShaderSource':new Cesium$3[(_0x5897fe(0x2f7,0x383))](_0x3f3d7a),'outputTexture':this['particlesTextures'][_0x5956a1(0x2fb,0x311)],'preExecute':function(){const _0x2a2ce6=_0x494dd9['particlesTextures']['currentParticlesSpeed'];_0x494dd9['particlesTextures'][_0x21d2d4(0x475,0x4b6)]=_0x494dd9['particlesTextures']['postProcessingSpeed'];function _0x21d2d4(_0x57ba1b,_0x4030eb){return _0x5956a1(_0x4030eb,_0x57ba1b-0x14c);}_0x494dd9['particlesTextures']['postProcessingSpeed']=_0x2a2ce6;function _0x21d3bc(_0x17a73d,_0x3602d9){return _0x5956a1(_0x3602d9,_0x17a73d- -0x1bc);}_0x494dd9['primitives']['updateSpeed']['commandToExecute']['outputTexture']=_0x494dd9[_0x21d3bc(0x1f6,0x202)][_0x21d3bc(0x155,0xef)];}}),'updatePosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesPosition':function(){function _0x1f800d(_0x4e6ebf,_0x24572e){return _0x5956a1(_0x4e6ebf,_0x24572e- -0x1d7);}return _0x494dd9[_0x1f800d(0x1b4,0x1db)]['currentParticlesPosition'];},'currentParticlesSpeed':function(){function _0x52b1bf(_0x3f2bfd,_0x3ae332){return _0x5956a1(_0x3f2bfd,_0x3ae332-0x8c);}return _0x494dd9['particlesTextures'][_0x52b1bf(0x3e4,0x3b5)];}},'fragmentShaderSource':new Cesium$3[(_0x5956a1(0x396,0x41d))](_0x2a1860),'outputTexture':this[_0x5956a1(0x398,0x3b2)]['nextParticlesPosition'],'preExecute':function(){function _0x15bd80(_0x510199,_0x30eb70){return _0x5897fe(_0x30eb70,_0x510199- -0x4b5);}const _0x2f530e=_0x494dd9['particlesTextures'][_0x15bd80(-0x1a6,-0x231)];function _0x541c67(_0x4b9111,_0x1957cf){return _0x5956a1(_0x1957cf,_0x4b9111- -0x575);}_0x494dd9[_0x541c67(-0x1c3,-0x216)][_0x541c67(-0x1cc,-0x1ce)]=_0x494dd9[_0x15bd80(-0x19d,-0x220)][_0x15bd80(-0x159,-0x135)],_0x494dd9['particlesTextures'][_0x541c67(-0x17f,-0x201)]=_0x2f530e,_0x494dd9['primitives'][_0x541c67(-0x25b,-0x254)]['commandToExecute']['outputTexture']=_0x494dd9['particlesTextures'][_0x541c67(-0x1af,-0x17e)];}}),'postProcessingPosition':new CustomPrimitive({'commandType':_0x5897fe(0x36d,0x341),'uniformMap':{'nextParticlesPosition':function(){function _0x2b39df(_0x2b92f2,_0x44453e){return _0x5897fe(_0x2b92f2,_0x44453e- -0x1a5);}function _0x5e6b09(_0xb3ad93,_0x5ce482){return _0x5897fe(_0x5ce482,_0xb3ad93- -0x586);}return _0x494dd9[_0x2b39df(0x168,0x173)][_0x2b39df(0x215,0x187)];},'nextParticlesSpeed':function(){function _0x4daa22(_0x1d3c9b,_0x14259b){return _0x5956a1(_0x14259b,_0x1d3c9b- -0x36f);}return _0x494dd9[_0x4daa22(0x43,0x32)]['nextParticlesSpeed'];},'lonRange':function(){return _0x249871['lonRange'];},'latRange':function(){return _0x249871['latRange'];},'randomCoefficient':function(){const _0x478913=Math['random']();return _0x478913;},'dropRate':function(){return _0x179fee['dropRate'];},'dropRateBump':function(){function _0x24c00e(_0x2387ed,_0x14fbfa){return _0x5897fe(_0x14fbfa,_0x2387ed- -0x199);}return _0x179fee[_0x24c00e(0x173,0x108)];}},'fragmentShaderSource':new Cesium$3[(_0x5956a1(0x4b0,0x41d))](_0x5adb1e),'outputTexture':this['particlesTextures'][_0x5956a1(0x476,0x3f6)],'preExecute':function(){function _0x353543(_0x21f766,_0x171a58){return _0x5897fe(_0x21f766,_0x171a58- -0x560);}function _0x31ba7c(_0x1ec775,_0x28729d){return _0x5897fe(_0x28729d,_0x1ec775- -0x17);}_0x494dd9['primitives'][_0x31ba7c(0x345,0x315)]['commandToExecute'][_0x31ba7c(0x25d,0x22e)]=_0x494dd9[_0x31ba7c(0x301,0x2a4)][_0x31ba7c(0x345,0x2f5)];}}),'postProcessingSpeed':new CustomPrimitive({'commandType':_0x5956a1(0x435,0x3db),'uniformMap':{'postProcessingPosition':function(){function _0x359696(_0x5a4666,_0x2d4ac0){return _0x5897fe(_0x5a4666,_0x2d4ac0- -0x1a9);}return _0x494dd9[_0x359696(0x1a8,0x16f)]['postProcessingPosition'];},'nextParticlesSpeed':function(){return _0x494dd9['particlesTextures']['nextParticlesSpeed'];}},'fragmentShaderSource':new Cesium$3[(_0x5956a1(0x450,0x41d))](_0x3a95f1),'outputTexture':this['particlesTextures']['postProcessingSpeed'],'preExecute':function(){function _0x127ff3(_0x3028f9,_0x15d003){return _0x5897fe(_0x15d003,_0x3028f9- -0x419);}function _0xd63eb4(_0x5194f3,_0x1da9d9){return _0x5897fe(_0x5194f3,_0x1da9d9-0xcc);}_0x494dd9[_0x127ff3(-0x13d,-0x168)][_0xd63eb4(0x434,0x458)]['commandToExecute']['outputTexture']=_0x494dd9[_0x127ff3(-0x101,-0x9d)]['postProcessingSpeed'];}})};}}const Cesium$2=mars3d__namespace['Cesium'];class ParticleSystem{constructor(_0x554e65,_0x33c995,_0x219921,_0xf00920){this[_0x1f010f(-0x49,0x5)]=_0x554e65;function _0x1f010f(_0x3c1fd4,_0x622fa0){return _0x25a800(_0x622fa0,_0x3c1fd4- -0x3d6);}_0x33c995={..._0x33c995};_0x33c995[_0x5d0a47(-0x28a,-0x27e)]&&_0x33c995['vdata']&&(_0x33c995[_0x5d0a47(-0x327,-0x290)]={},_0x33c995[_0x5d0a47(-0x220,-0x290)]['lon']=_0x33c995[_0x1f010f(-0xee,-0xbc)],_0x33c995['dimensions']['lat']=_0x33c995[_0x5d0a47(-0x238,-0x287)],_0x33c995[_0x1f010f(-0xd3,-0x104)]['lev']=_0x33c995[_0x1f010f(-0x123,-0xc7)]||0x1,_0x33c995['lon']={},_0x33c995['lon']['min']=_0x33c995['xmin'],_0x33c995['lon'][_0x5d0a47(-0x289,-0x2df)]=_0x33c995[_0x1f010f(-0x75,-0x70)],_0x33c995['lat']={},_0x33c995['lat']['min']=_0x33c995[_0x1f010f(-0xfd,-0x68)],_0x33c995[_0x1f010f(-0xaa,-0x3f)][_0x1f010f(-0x122,-0xc6)]=_0x33c995['ymax'],_0x33c995['lev']={},_0x33c995['lev']['min']=_0x33c995['levmin']??0x1,_0x33c995['lev'][_0x5d0a47(-0x2ee,-0x2df)]=_0x33c995[_0x5d0a47(-0x319,-0x2a8)]??0x1,_0x33c995['U']={},_0x33c995['U']['array']=new Float32Array(_0x33c995[_0x5d0a47(-0x294,-0x27e)]),_0x33c995['U']['min']=_0x33c995[_0x5d0a47(-0x298,-0x20e)]??Math['min'](..._0x33c995[_0x5d0a47(-0x1f3,-0x27e)]),_0x33c995['U']['max']=_0x33c995[_0x1f010f(-0x4a,-0x1d)]??Math['max'](..._0x33c995[_0x5d0a47(-0x1ee,-0x27e)]),_0x33c995['V']={},_0x33c995['V']['array']=new Float32Array(_0x33c995['vdata']),_0x33c995['V'][_0x1f010f(-0xd0,-0x4a)]=_0x33c995['vmin']??Math['min'](..._0x33c995['vdata']),_0x33c995['V']['max']=_0x33c995['vmax']??Math[_0x1f010f(-0x122,-0x156)](..._0x33c995['vdata']));this[_0x5d0a47(-0x167,-0x1ff)]=_0x33c995;function _0x5d0a47(_0x5e6f99,_0xf44be0){return _0x25a800(_0x5e6f99,_0xf44be0- -0x593);}this[_0x5d0a47(-0x2ca,-0x2bd)]=_0x219921,this['viewerParameters']=_0xf00920,this['particlesComputing']=new ParticlesComputing(this['context'],this[_0x1f010f(-0x42,0x9)],this[_0x5d0a47(-0x2fa,-0x2bd)],this['viewerParameters']),this['particlesRendering']=new ParticlesRendering(this['context'],this['data'],this['options'],this['viewerParameters'],this['particlesComputing']);}['canvasResize'](_0x4af7d3){this['particlesComputing']['destroyParticlesTextures'](),Object['keys'](this[_0x4837f3(-0x2b,0x1a)][_0x4837f3(0xa2,0x59)])[_0x4837f3(-0x4c,-0x3b)](_0x256b0f=>{function _0x16056f(_0x474866,_0x31a831){return _0x4837f3(_0x474866-0x75,_0x31a831);}this['particlesComputing']['windTextures'][_0x256b0f][_0x16056f(0x21,0x57)]();}),this['particlesRendering'][_0x50e0f0(0x1dc,0x24b)]['colorTable']['destroy'](),Object['keys'](this[_0x4837f3(-0x4b,-0x5b)][_0x50e0f0(0x1a7,0x169)])[_0x50e0f0(0x19d,0x15b)](_0x59b5eb=>{this['particlesRendering']['framebuffers'][_0x59b5eb]['destroy']();});function _0x50e0f0(_0x1366f8,_0x284bca){return _0x25a800(_0x284bca,_0x1366f8- -0x136);}function _0x4837f3(_0x48f7e,_0x38a3fa){return _0x263d96(_0x38a3fa,_0x48f7e- -0x160);}this['context']=_0x4af7d3,this['particlesComputing']=new ParticlesComputing(this[_0x50e0f0(0x257,0x214)],this['data'],this['options'],this[_0x50e0f0(0x227,0x1ea)]),this['particlesRendering']=new ParticlesRendering(this[_0x4837f3(0x6e,0xe4)],this[_0x50e0f0(0x25e,0x20b)],this['options'],this['viewerParameters'],this['particlesComputing']);}[_0x263d96(0x111,0x181)](){const _0x1f0f1c=new Cesium$2['ClearCommand']({'color':new Cesium$2['Color'](0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Cesium$2['Pass']['OPAQUE']});Object['keys'](this['particlesRendering']['framebuffers'])['forEach'](_0x5e69f6=>{_0x1f0f1c['framebuffer']=this[_0x178d4a(-0x14b,-0x16b)]['framebuffers'][_0x5e69f6];function _0x495fd1(_0xc92ca4,_0x523a26){return _0x1cf6(_0x523a26- -0x193,_0xc92ca4);}function _0x178d4a(_0x3fd917,_0x2bfea5){return _0x1cf6(_0x2bfea5- -0x267,_0x3fd917);}_0x1f0f1c[_0x495fd1(0x1,-0x20)](this['context']);});}['refreshParticles'](_0xc5d693){this['clearFramebuffers'](),this['particlesComputing']['destroyParticlesTextures'](),this['particlesComputing'][_0x5567ae(-0x240,-0x1d4)](this[_0x42b149(0x138,0x199)],this[_0x5567ae(-0x1a2,-0x228)],this[_0x42b149(0x191,0x169)]);function _0x42b149(_0x2753ae,_0x44b907){return _0x263d96(_0x2753ae,_0x44b907- -0x35);}function _0x5567ae(_0x4e945f,_0x3d3029){return _0x263d96(_0x4e945f,_0x3d3029- -0x33f);}if(_0xc5d693){var _0x3100b9;const _0x55cd14=this[_0x42b149(0x164,0xe0)]['createSegmentsGeometry'](this[_0x5567ae(-0x27e,-0x228)]);this[_0x5567ae(-0x2a1,-0x22a)][_0x5567ae(-0x214,-0x1f3)]['segments']['geometry']=_0x55cd14;const _0x588c02=Cesium$2[_0x42b149(0x36,0xb6)]['fromGeometry']({'context':this[_0x5567ae(-0x105,-0x171)],'geometry':_0x55cd14,'attributeLocations':this[_0x42b149(0x51,0xe0)]['primitives']['segments']['attributeLocations'],'bufferUsage':Cesium$2[_0x5567ae(-0x1ce,-0x23d)][_0x5567ae(-0x241,-0x1ba)]});(_0x3100b9=this[_0x5567ae(-0x23a,-0x22a)][_0x5567ae(-0x287,-0x1f3)])!==null&&_0x3100b9!==void 0x0&&(_0x3100b9=_0x3100b9[_0x5567ae(-0x1c0,-0x1e3)])!==null&&_0x3100b9!==void 0x0&&_0x3100b9['commandToExecute']&&(this['particlesRendering']['primitives']['segments'][_0x5567ae(-0x183,-0x157)][_0x42b149(0xcd,0xda)]=_0x588c02);}}['setOptions'](_0x19eb56){let _0x415197=![];this['options'][_0x10a118(0x379,0x3ef)]!==_0x19eb56[_0x384049(-0x129,-0xb0)]&&(_0x415197=!![]);function _0x10a118(_0x46c234,_0x71e80d){return _0x263d96(_0x46c234,_0x71e80d-0x208);}Object[_0x10a118(0x2eb,0x2f2)](_0x19eb56)[_0x384049(-0x1ab,-0x183)](_0x4ff5af=>{function _0x551b47(_0xb88df7,_0x3764f7){return _0x384049(_0x3764f7,_0xb88df7-0x62);}this[_0x551b47(-0x11e,-0x13b)][_0x4ff5af]=_0x19eb56[_0x4ff5af];});function _0x384049(_0x24ed79,_0x1890cb){return _0x25a800(_0x24ed79,_0x1890cb- -0x456);}this[_0x10a118(0x3d3,0x388)](_0x415197);}['applyViewerParameters'](_0x586dca){function _0x418103(_0x5e7968,_0x19912b){return _0x263d96(_0x5e7968,_0x19912b- -0x10f);}Object[_0x418103(0xc,-0x25)](_0x586dca)[_0x418103(-0x5e,0x5)](_0x227fb0=>{function _0x5da152(_0x65e077,_0x457d4e){return _0x418103(_0x65e077,_0x457d4e- -0x2e2);}this[_0x5da152(-0x207,-0x253)][_0x227fb0]=_0x586dca[_0x227fb0];});function _0x50a181(_0x3015c8,_0x42d129){return _0x25a800(_0x42d129,_0x3015c8- -0x45d);}this['refreshParticles'](![]);}['destroy'](){clearTimeout(this[_0x5d1c86(0x467,0x486)]),this[_0x5b7e45(0x265,0x252)]['destroyParticlesTextures']();function _0x5d1c86(_0x41fdef,_0x436547){return _0x25a800(_0x436547,_0x41fdef-0x169);}Object['keys'](this['particlesComputing']['windTextures'])['forEach'](_0x57c178=>{this['particlesComputing']['windTextures'][_0x57c178]['destroy']();}),this[_0x5b7e45(0x245,0x2a7)]['textures']['colorTable']['destroy']();function _0x5b7e45(_0x4de73d,_0x2886d9){return _0x263d96(_0x2886d9,_0x4de73d-0x130);}Object['keys'](this[_0x5b7e45(0x245,0x225)][_0x5b7e45(0x24e,0x1d6)])['forEach'](_0x49d46f=>{function _0x3fadfa(_0x50c1db,_0x3b50bb){return _0x5b7e45(_0x3b50bb- -0x3c3,_0x50c1db);}function _0x1ee8f5(_0x35a4ba,_0x157af1){return _0x5b7e45(_0x35a4ba- -0x310,_0x157af1);}this['particlesRendering'][_0x1ee8f5(-0xc2,-0x94)][_0x49d46f][_0x1ee8f5(-0xd4,-0xb8)]();});for(const _0x107bcb in this){delete this[_0x107bcb];}}}const Cesium$1=mars3d__namespace[_0x263d96(0x140,0x178)],BaseLayer$1=mars3d__namespace['layer']['BaseLayer'],_0x4dead3={};_0x4dead3[_0x25a800(0x3b5,0x3ab)]=0x1000,_0x4dead3[_0x25a800(0x325,0x29f)]=0x0,_0x4dead3['fadeOpacity']=0.996,_0x4dead3[_0x263d96(0x15a,0x1a4)]=0.003,_0x4dead3['dropRateBump']=0.01,_0x4dead3[_0x263d96(0x1b2,0x210)]=0.5,_0x4dead3[_0x25a800(0x2e7,0x2c3)]=0x2,_0x4dead3[_0x25a800(0x339,0x2ff)]=[_0x263d96(0x239,0x1ab)];const DEF_OPTIONS=_0x4dead3;class WindLayer extends BaseLayer$1{constructor(_0x11ca91={}){_0x11ca91={...DEF_OPTIONS,..._0x11ca91},super(_0x11ca91),this['_setOptionsHook'](_0x11ca91);}get[_0x25a800(0x301,0x30e)](){return this['primitives'];}get['data'](){return this['_data'];}set['data'](_0x2013f2){this['setData'](_0x2013f2);}get['colors'](){function _0x110ca3(_0x58211d,_0x69eee7){return _0x25a800(_0x58211d,_0x69eee7- -0x1f7);}return this[_0x110ca3(0x108,0xdf)]['colors'];}set[_0x25a800(0x345,0x2ff)](_0xae2f67){function _0x45d7bd(_0x2bbca2,_0xeeb3e1){return _0x263d96(_0x2bbca2,_0xeeb3e1- -0x207);}function _0x251c67(_0x3f03e7,_0x408367){return _0x263d96(_0x3f03e7,_0x408367- -0x181);}this[_0x45d7bd(-0xc6,-0xf0)]['colors']=_0xae2f67;if(this['particleSystem']){const _0xb3a04c={};_0xb3a04c[_0x45d7bd(-0x62,-0xc7)]=_0xae2f67,this[_0x251c67(-0x102,-0x8f)]['setOptions'](_0xb3a04c);}this['resize']();}['_mountedHook'](){}['_addedHook'](){this['scene']=this['_map'][_0x1e4758(0x4c2,0x45f)],this[_0x1e4758(0x470,0x457)]=this['_map'][_0x34915a(0x294,0x20e)];function _0x34915a(_0x587add,_0x26b706){return _0x263d96(_0x26b706,_0x587add-0x109);}this['primitives']=new Cesium$1[(_0x34915a(0x237,0x29b))](),this['_map'][_0x34915a(0x29c,0x295)]['primitives']['add'](this['primitives']),this[_0x1e4758(0x4db,0x46a)]={'lonRange':new Cesium$1['Cartesian2'](),'latRange':new Cesium$1[(_0x34915a(0x2ce,0x246))](),'pixelSize':0x0},this[_0x34915a(0x1eb,0x260)]=new Cesium$1[(_0x34915a(0x26b,0x2cd))](Cesium$1[_0x34915a(0x23a,0x1be)]['ZERO'],0.99*0x615299),this['updateViewerParameters'](),window['addEventListener']('resize',this[_0x34915a(0x2e9,0x333)][_0x34915a(0x257,0x2d9)](this),![]);function _0x1e4758(_0x41f2fc,_0x342ce2){return _0x263d96(_0x41f2fc,_0x342ce2-0x2cc);}this[_0x1e4758(0x4d8,0x47c)]=![],this['mouse_move']=![],this['_map']['on'](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this),this['_map']['on'](mars3d__namespace['EventType'][_0x1e4758(0x435,0x47b)],this['_onMouseDownEvent'],this),this['_map']['on'](mars3d__namespace['EventType'][_0x34915a(0x2b0,0x23a)],this[_0x1e4758(0x494,0x40d)],this),this['_map']['on'](mars3d__namespace[_0x34915a(0x26a,0x280)][_0x34915a(0x25a,0x272)],this['_onMouseMoveEvent'],this),this['_data']&&this['setData'](this['_data']);}['_removedHook'](){window['removeEventListener']('resize',this['resize']),this[_0x4c9bac(0x1cd,0x232)][_0x2ba608(-0x116,-0x8a)](mars3d__namespace[_0x2ba608(0x1e,-0x49)]['preRender'],this['_onMap_preRenderEvent'],this);function _0x4c9bac(_0x200146,_0xd62c37){return _0x25a800(_0xd62c37,_0x200146- -0x1fa);}this['_map'][_0x4c9bac(0xe5,0x80)](mars3d__namespace['EventType'][_0x4c9bac(0x129,0x11e)],this['_onMapWhellEvent'],this),this['_map']['off'](mars3d__namespace['EventType'][_0x2ba608(0x49,0x5)],this['_onMouseDownEvent'],this);function _0x2ba608(_0x5068fe,_0x1491ff){return _0x25a800(_0x5068fe,_0x1491ff- -0x369);}this[_0x2ba608(-0x13,0x5e)][_0x2ba608(-0x76,-0x8a)](mars3d__namespace[_0x4c9bac(0x126,0xd9)]['mouseUp'],this['_onMouseUpEvent'],this),this[_0x2ba608(0x8e,0x5e)]['off'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this),this['primitives']['removeAll'](),this[_0x2ba608(-0x2c,0x5e)][_0x2ba608(-0x73,-0x17)]['primitives']['remove'](this[_0x4c9bac(0x111,0xaa)]);}[_0x263d96(0x1ca,0x1e0)](){function _0x383207(_0x5bccc1,_0x71c69b){return _0x263d96(_0x71c69b,_0x5bccc1- -0x38c);}if(!this['show']||!this['particleSystem'])return;this['primitives'][_0x383207(-0x262,-0x2b5)]=![],this['primitives'][_0x383207(-0x244,-0x283)]();function _0x2a9863(_0x2c2c71,_0x59aaae){return _0x263d96(_0x2c2c71,_0x59aaae-0x337);}this[_0x383207(-0x184,-0x151)]['once'](mars3d__namespace[_0x383207(-0x22b,-0x223)][_0x383207(-0x1cf,-0x243)],this[_0x383207(-0x28c,-0x2e2)],this);}['_onMap_preRenderEvent'](_0x56530b){this['particleSystem']['canvasResize'](this['scene']['context']),this['addPrimitives'](),this['primitives']['show']=!![];}[_0x25a800(0x21a,0x2ae)](_0xe45785){clearTimeout(this[_0x8e210f(-0x251,-0x280)]);function _0x8e210f(_0x35d843,_0x1c4cc5){return _0x25a800(_0x35d843,_0x1c4cc5- -0x582);}if(!this['show']||!this['particleSystem'])return;function _0x278d10(_0x5d1057,_0x313c0a){return _0x263d96(_0x5d1057,_0x313c0a-0x19d);}this['primitives'][_0x278d10(0x26f,0x2c7)]=![],this[_0x278d10(0x359,0x2e0)]=setTimeout(()=>{if(!this['show'])return;this['redraw']();},0xc8);}[_0x25a800(0x3e8,0x38f)](_0x3c18a0){this['mouse_down']=!![];}['_onMouseMoveEvent'](_0x38fe78){function _0x1ffdc7(_0x2daef7,_0x1ba4c9){return _0x263d96(_0x2daef7,_0x1ba4c9-0x125);}function _0x246f8a(_0x4fff03,_0x51fb94){return _0x263d96(_0x51fb94,_0x4fff03-0xf0);}if(!this['show']||!this['particleSystem'])return;this['mouse_down']&&(this[_0x1ffdc7(0x252,0x271)][_0x246f8a(0x21a,0x193)]=![],this['mouse_move']=!![]);}['_onMouseUpEvent'](_0x1fdb99){if(!this['show']||!this['particleSystem'])return;this['mouse_down']&&this[_0x1b08a5(0x109,0x99)]&&this[_0x1b08a5(0xa3,0xc5)]();function _0x454f56(_0x2b8fb9,_0x3c57e3){return _0x263d96(_0x3c57e3,_0x2b8fb9- -0xcc);}function _0x1b08a5(_0x40c266,_0x33d692){return _0x25a800(_0x33d692,_0x40c266- -0x255);}this['primitives'][_0x1b08a5(0x94,0xad)]=!![],this['mouse_down']=![],this[_0x1b08a5(0x109,0x187)]=![];}['redraw'](){function _0x1f57f8(_0x464ead,_0x157482){return _0x263d96(_0x464ead,_0x157482- -0x76);}if(!this[_0x3e2fc6(0x370,0x2f6)]||!this['show'])return;this[_0x1f57f8(0x120,0x10c)]();function _0x3e2fc6(_0x15ea9e,_0x20d6c3){return _0x25a800(_0x20d6c3,_0x15ea9e- -0x57);}this[_0x3e2fc6(0x25a,0x27d)]['applyViewerParameters'](this[_0x3e2fc6(0x306,0x364)]),this['primitives']['show']=!![];}[_0x25a800(0x33f,0x34d)](_0x3df01d){this['_data']=_0x3df01d;function _0x1f8079(_0x209463,_0x1c4f1c){return _0x25a800(_0x1c4f1c,_0x209463- -0x355);}function _0x3fce4b(_0x30a21b,_0x2d3f1d){return _0x25a800(_0x30a21b,_0x2d3f1d- -0x2e8);}this['particleSystem']&&this[_0x3fce4b(0x16,-0x37)]['destroy'](),this['particleSystem']=new ParticleSystem(this[_0x1f8079(-0x3,-0x6d)][_0x1f8079(0x38,0xab)],_0x3df01d,this['getOptions'](),this['viewerParameters']),this[_0x1f8079(-0x50,0x21)]();}['_setOptionsHook'](_0x347d44,_0x196ba4){function _0x46d8b8(_0x59935e,_0x37bdf3){return _0x263d96(_0x59935e,_0x37bdf3- -0x25f);}if(_0x347d44)for(const _0x4e595d in _0x347d44){this[_0x4e595d]=_0x347d44[_0x4e595d];}this['particleSystem']&&this['particleSystem'][_0x46d8b8(-0x94,-0xb2)](this['getOptions']());}['getOptions'](){const _0x4da300=Math['ceil'](Math['sqrt'](this['particlesNumber']));this['particlesNumber']=_0x4da300*_0x4da300;const _0xacce07={};_0xacce07[_0x3d392f(0x167,0x1f7)]=_0x4da300,_0xacce07[_0x3d392f(0x1e2,0x1c4)]=this['particlesNumber'],_0xacce07['particleHeight']=this['fixedHeight'];function _0x3d392f(_0x113585,_0x4fddae){return _0x263d96(_0x4fddae,_0x113585- -0x5);}_0xacce07['fadeOpacity']=this[_0x58a394(0x1d6,0x1e8)],_0xacce07[_0x58a394(0x25f,0x298)]=this['dropRate'],_0xacce07[_0x58a394(0x237,0x25a)]=this[_0x58a394(0x237,0x2ba)];function _0x58a394(_0x20be2f,_0x51ead7){return _0x263d96(_0x51ead7,_0x20be2f-0xbb);}return _0xacce07[_0x3d392f(0x20b,0x1c1)]=this[_0x3d392f(0x20b,0x215)],_0xacce07[_0x58a394(0x1bf,0x14f)]=this['lineWidth'],_0xacce07['colors']=this[_0x58a394(0x1fb,0x166)],_0xacce07;}[_0x263d96(0x1ab,0x146)](){this['primitives']['add'](this['particleSystem']['particlesComputing']['primitives'][_0x3f05af(0x14,0x4b)]),this['primitives'][_0x3f05af(0x1a,-0x78)](this['particleSystem']['particlesComputing']['primitives']['updateSpeed']);function _0x20d91d(_0x15dc15,_0x10f6ec){return _0x25a800(_0x10f6ec,_0x15dc15- -0x3af);}function _0x3f05af(_0xdd109f,_0x5c1467){return _0x25a800(_0x5c1467,_0xdd109f- -0x351);}this['primitives'][_0x20d91d(-0x44,-0x3b)](this['particleSystem'][_0x20d91d(-0xbb,-0x148)]['primitives']['updatePosition']),this['primitives'][_0x20d91d(-0x44,-0x8e)](this[_0x3f05af(-0xa0,-0x123)]['particlesComputing']['primitives'][_0x20d91d(-0x24,0x75)]),this['primitives']['add'](this['particleSystem']['particlesComputing'][_0x20d91d(-0xa4,-0x13)]['postProcessingSpeed']),this['primitives'][_0x20d91d(-0x44,0x52)](this[_0x20d91d(-0xfe,-0x7f)][_0x20d91d(-0xdb,-0x57)][_0x3f05af(-0x46,-0xa8)]['segments']),this['primitives'][_0x20d91d(-0x44,0x41)](this[_0x20d91d(-0xfe,-0x93)]['particlesRendering'][_0x20d91d(-0xa4,-0x27)]['trails']),this['primitives'][_0x20d91d(-0x44,-0xbc)](this['particleSystem']['particlesRendering'][_0x3f05af(-0x46,-0xb1)]['screen']);}['updateViewerParameters'](){let _0x46e02f=this['camera']['computeViewRectangle'](this['scene']['globe']['ellipsoid']);if(!_0x46e02f){const _0x251b53=this['_map']['getExtent']();_0x46e02f=Cesium$1['Rectangle']['fromDegrees'](_0x251b53[_0x515fd6(0x563,0x548)],_0x251b53['ymin'],_0x251b53[_0x515fd6(0x4fc,0x4fd)],_0x251b53[_0x515fd6(0x4ad,0x4d5)]);}const _0x1fb85d=Util['viewRectangleToLonLatRange'](_0x46e02f);this['viewerParameters']['lonRange']['x']=_0x1fb85d['lon']['min'],this['viewerParameters'][_0x5b60e1(-0x2c7,-0x26f)]['y']=_0x1fb85d['lon']['max'],this[_0x5b60e1(-0x261,-0x1fb)]['latRange']['x']=_0x1fb85d[_0x515fd6(0x531,0x4c8)]['min'],this['viewerParameters']['latRange']['y']=_0x1fb85d['lat']['max'];const _0x35fc55=this['camera']['getPixelSize'](this[_0x515fd6(0x3cd,0x43d)],this['scene']['drawingBufferWidth'],this[_0x5b60e1(-0x26c,-0x28d)]['drawingBufferHeight']);function _0x515fd6(_0x76bb3d,_0x31a1de){return _0x25a800(_0x76bb3d,_0x31a1de-0x19c);}function _0x5b60e1(_0x65bf95,_0x3d6e8a){return _0x25a800(_0x3d6e8a,_0x65bf95- -0x5be);}_0x35fc55>0x0&&(this[_0x5b60e1(-0x261,-0x270)][_0x515fd6(0x53f,0x4d9)]=_0x35fc55);}}mars3d__namespace['LayerUtil']['register'](_0x25a800(0x313,0x382),WindLayer),mars3d__namespace[_0x263d96(0x1bd,0x14f)]['WindLayer']=WindLayer;class CanvasParticle{constructor(){this['lng']=null;function _0x1e7cbb(_0x5d1620,_0x31f54b){return _0x25a800(_0x5d1620,_0x31f54b- -0x241);}this['lat']=null,this[_0x124670(0x56c,0x55d)]=null,this[_0x124670(0x586,0x571)]=null;function _0x124670(_0x44121d,_0x1e435a){return _0x263d96(_0x44121d,_0x1e435a-0x37c);}this[_0x1e7cbb(0xf5,0x66)]=null,this['speed']=null;}['destroy'](){for(const _0x542c27 in this){delete this[_0x542c27];}}}class CanvasWindField{constructor(_0x360a47){function _0x1f64f4(_0x17aa26,_0x5aae4c){return _0x263d96(_0x5aae4c,_0x17aa26- -0x177);}this[_0x1f64f4(0x36,-0x42)](_0x360a47);}get['speedRate'](){function _0x440b12(_0x54ce0d,_0x4a0d9f){return _0x263d96(_0x4a0d9f,_0x54ce0d- -0xb1);}return this[_0x440b12(0x150,0x132)];}set['speedRate'](_0x2fc595){this['_speedRate']=(0x64-(_0x2fc595>0x63?0x63:_0x2fc595))*0x64;function _0x7115ef(_0x45d875,_0x25db41){return _0x25a800(_0x45d875,_0x25db41-0x16e);}function _0xee9898(_0x35e0d6,_0x409b57){return _0x263d96(_0x35e0d6,_0x409b57- -0x25e);}this['_calc_speedRate']=[(this[_0xee9898(-0x132,-0xbc)]-this[_0x7115ef(0x4bb,0x51a)])/this['_speedRate'],(this['ymax']-this[_0xee9898(-0x153,-0x144)])/this['_speedRate']];}get[_0x25a800(0x329,0x376)](){return this['_maxAge'];}set[_0x263d96(0x126,0x1b7)](_0x4bf3d3){this['_maxAge']=_0x4bf3d3;}['setOptions'](_0x114064){this['options']=_0x114064,this['maxAge']=_0x114064[_0x22d229(0x1d3,0x192)]||0x78,this['speedRate']=_0x114064['speedRate']||0x32,this['particles']=[];const _0x4d34d2=_0x114064['particlesNumber']||0x1000;function _0x22d229(_0x1a21df,_0x4791f0){return _0x263d96(_0x4791f0,_0x1a21df-0x1c);}function _0x301811(_0x1125ab,_0x2c0150){return _0x25a800(_0x1125ab,_0x2c0150- -0x2e3);}for(let _0x4af143=0x0;_0x4af143<_0x4d34d2;_0x4af143++){const _0x2dc93a=this[_0x22d229(0x161,0x17a)](new CanvasParticle());this[_0x22d229(0x113,0x8f)]['push'](_0x2dc93a);}}['setDate'](_0x1ce38){this[_0x40c046(0x39e,0x3ae)]=_0x1ce38[_0x40c046(0x39e,0x41f)],this['cols']=_0x1ce38['cols'],this[_0x40c046(0x43e,0x3d4)]=_0x1ce38[_0x2e9f10(0x97,0xc1)],this[_0x2e9f10(0x4c,0xcc)]=_0x1ce38['xmax'],this['ymin']=_0x1ce38[_0x40c046(0x36b,0x327)],this[_0x2e9f10(0x24,-0x11)]=_0x1ce38['ymax'],this['grid']=[];const _0x1b31f4=_0x1ce38[_0x40c046(0x3a7,0x38f)];function _0x2e9f10(_0x1080dd,_0x5aeb5b){return _0x263d96(_0x5aeb5b,_0x1080dd- -0x156);}const _0x5300f0=_0x1ce38[_0x2e9f10(0x83,0x1)];function _0x40c046(_0x39ab9a,_0x1fb099){return _0x263d96(_0x1fb099,_0x39ab9a-0x251);}let _0x141682=![];_0x1b31f4['length']===this['rows']&&_0x1b31f4[0x0][_0x2e9f10(0x6b,0xb7)]===this[_0x40c046(0x37a,0x3a9)]&&(_0x141682=!![]);let _0x1b87c0=0x0,_0x5a2d9e=null,_0x50a030=null;for(let _0x27c903=0x0;_0x27c903<this['rows'];_0x27c903++){_0x5a2d9e=[];for(let _0x163c1e=0x0;_0x163c1e<this['cols'];_0x163c1e++,_0x1b87c0++){_0x141682?_0x50a030=this[_0x2e9f10(0xa1,0xa9)](_0x1b31f4[_0x27c903][_0x163c1e],_0x5300f0[_0x27c903][_0x163c1e]):_0x50a030=this[_0x2e9f10(0xa1,0xaa)](_0x1b31f4[_0x1b87c0],_0x5300f0[_0x1b87c0]),_0x5a2d9e['push'](_0x50a030);}this[_0x2e9f10(-0x55,-0x59)]['push'](_0x5a2d9e);}this['options'][_0x40c046(0x387,0x2f7)]&&this['grid'][_0x40c046(0x419,0x38e)]();}['clear'](){delete this['rows'],delete this[_0x1002c8(0x3a5,0x370)],delete this['xmin'],delete this['xmax'],delete this['ymin'],delete this['ymax'];function _0x1002c8(_0x53b99f,_0x389af1){return _0x263d96(_0x389af1,_0x53b99f-0x27c);}delete this['grid'],delete this['particles'];}[_0x25a800(0x3d0,0x34c)](_0x3fa53a,_0x1c58a4){const _0x4f828b=(_0x3fa53a-this['xmin'])/(this[_0x4c61f8(-0x1bc,-0x1b3)]-this['xmin'])*(this[_0x4c61f8(-0x2a4,-0x22c)]-0x1);function _0x3914e6(_0x3489c9,_0x16dfde){return _0x25a800(_0x3489c9,_0x16dfde-0x1a5);}function _0x4c61f8(_0x223eda,_0x3f1fb2){return _0x25a800(_0x223eda,_0x3f1fb2- -0x514);}const _0x33a48e=(this[_0x4c61f8(-0x1b9,-0x1db)]-_0x1c58a4)/(this['ymax']-this[_0x4c61f8(-0x212,-0x23b)])*(this['rows']-0x1);return[_0x4f828b,_0x33a48e];}['getUVByXY'](_0x1f914c,_0x23ba20){if(_0x1f914c<0x0||_0x1f914c>=this['cols']||_0x23ba20>=this[_0x5e9c33(-0x1a9,-0x1be)])return[0x0,0x0,0x0];const _0x211666=Math[_0x5e9c33(-0x1cf,-0x1a7)](_0x1f914c),_0x2ed544=Math[_0x5e9c33(-0x1cf,-0x1be)](_0x23ba20);if(_0x211666===_0x1f914c&&_0x2ed544===_0x23ba20)return this['grid'][_0x23ba20][_0x1f914c];function _0x3ef9d0(_0x1bfea1,_0x194c0c){return _0x263d96(_0x194c0c,_0x1bfea1-0x53);}function _0x5e9c33(_0x3fb1c3,_0x1ed142){return _0x25a800(_0x1ed142,_0x3fb1c3- -0x4b5);}const _0x5431c5=_0x211666+0x1,_0x256b73=_0x2ed544+0x1,_0x2f600d=this['getUVByXY'](_0x211666,_0x2ed544),_0x39fd16=this['getUVByXY'](_0x5431c5,_0x2ed544),_0x372c54=this['getUVByXY'](_0x211666,_0x256b73),_0x17c99b=this[_0x3ef9d0(0x138,0x152)](_0x5431c5,_0x256b73);let _0x5b184f=null;try{_0x5b184f=this[_0x5e9c33(-0x100,-0x14e)](_0x1f914c-_0x211666,_0x23ba20-_0x2ed544,_0x2f600d,_0x39fd16,_0x372c54,_0x17c99b);}catch(_0x40257c){console[_0x3ef9d0(0x1fc,0x278)](_0x1f914c,_0x23ba20);}return _0x5b184f;}['_bilinearInterpolation'](_0x3f6b13,_0x579d1d,_0x339a95,_0x1f5fa1,_0xb9e6e4,_0xa822fd){const _0x19c8cf=0x1-_0x3f6b13,_0x4f00bd=0x1-_0x579d1d,_0x2e2068=_0x19c8cf*_0x4f00bd,_0x37a9a0=_0x3f6b13*_0x4f00bd,_0x1dbfee=_0x19c8cf*_0x579d1d,_0x22caed=_0x3f6b13*_0x579d1d,_0x1b39be=_0x339a95[0x0]*_0x2e2068+_0x1f5fa1[0x0]*_0x37a9a0+_0xb9e6e4[0x0]*_0x1dbfee+_0xa822fd[0x0]*_0x22caed,_0x5781f9=_0x339a95[0x1]*_0x2e2068+_0x1f5fa1[0x1]*_0x37a9a0+_0xb9e6e4[0x1]*_0x1dbfee+_0xa822fd[0x1]*_0x22caed;return this['_calcUV'](_0x1b39be,_0x5781f9);}[_0x263d96(0x194,0x1f7)](_0x319713,_0x9897f5){return[+_0x319713,+_0x9897f5,Math['sqrt'](_0x319713*_0x319713+_0x9897f5*_0x9897f5)];}['getUVByPoint'](_0x50e506,_0x9c5d63){if(!this[_0xeb9da(0x14a,0xd6)](_0x50e506,_0x9c5d63))return null;const _0x5b6668=this[_0xeb9da(0x14a,0x118)](_0x50e506,_0x9c5d63);function _0xeb9da(_0xda0236,_0x1ba535){return _0x263d96(_0xda0236,_0x1ba535- -0x75);}function _0x5061b3(_0x55633a,_0x490fe5){return _0x263d96(_0x490fe5,_0x55633a- -0x19);}const _0x3248ea=this['getUVByXY'](_0x5b6668[0x0],_0x5b6668[0x1]);return _0x3248ea;}['isInExtent'](_0x2f0032,_0x36cba2){function _0x2ace8a(_0x45e326,_0xd8769e){return _0x25a800(_0x45e326,_0xd8769e- -0xd7);}function _0x23623b(_0x406df7,_0xc4842d){return _0x25a800(_0xc4842d,_0x406df7- -0x365);}return _0x2f0032>=this[_0x23623b(0x47,0x88)]&&_0x2f0032<=this[_0x23623b(-0x4,-0x99)]&&_0x36cba2>=this['ymin']&&_0x36cba2<=this['ymax']?!![]:![];}['getRandomLatLng'](){const _0x482a61=fRandomByfloat(this[_0x25413b(0x2e0,0x250)],this['xmax']);function _0xaeb6dc(_0x14407c,_0x57b1b6){return _0x263d96(_0x57b1b6,_0x14407c-0x10e);}const _0x20777f=fRandomByfloat(this[_0xaeb6dc(0x228,0x1c6)],this['ymax']),_0x579130={};_0x579130['lat']=_0x20777f,_0x579130[_0x25413b(0x102,0x17c)]=_0x482a61;function _0x25413b(_0x11b980,_0x389783){return _0x25a800(_0x11b980,_0x389783- -0x15c);}return _0x579130;}[_0x25a800(0x2b4,0x29d)](){let _0x5a68f7,_0x2c46b3,_0xbf130c;for(let _0x37c0a9=0x0,_0xe5bdf6=this['particles']['length'];_0x37c0a9<_0xe5bdf6;_0x37c0a9++){let _0x32d480=this['particles'][_0x37c0a9];_0x32d480['age']<=0x0&&(_0x32d480=this['_randomParticle'](_0x32d480));if(_0x32d480['age']>0x0){const _0xd3dc84=_0x32d480[_0x477c0c(0x39f,0x30d)],_0x3ed479=_0x32d480['tlat'];_0xbf130c=this['getUVByPoint'](_0xd3dc84,_0x3ed479),_0xbf130c?(_0x5a68f7=_0xd3dc84+this[_0x374f85(0x2e,-0x55)][0x0]*_0xbf130c[0x0],_0x2c46b3=_0x3ed479+this[_0x374f85(0x2e,0x70)][0x1]*_0xbf130c[0x1],_0x32d480[_0x477c0c(0x2d7,0x368)]=_0xd3dc84,_0x32d480['lat']=_0x3ed479,_0x32d480['tlng']=_0x5a68f7,_0x32d480[_0x374f85(0x88,0x6e)]=_0x2c46b3,_0x32d480['speed']=_0xbf130c[0x2],_0x32d480['age']--):_0x32d480['age']=0x0;}}function _0x477c0c(_0x3edabb,_0x13b782){return _0x25a800(_0x13b782,_0x3edabb- -0x1);}function _0x374f85(_0x52bf25,_0x4897a5){return _0x263d96(_0x4897a5,_0x52bf25- -0x16d);}return this['particles'];}[_0x263d96(0x124,0x145)](_0x1a608b){let _0x6b6818,_0x17b6c6;function _0x34d57e(_0x52678c,_0x35299f){return _0x25a800(_0x35299f,_0x52678c-0xa4);}for(let _0x819a0b=0x0;_0x819a0b<0x1e;_0x819a0b++){_0x6b6818=this[_0x34d57e(0x3ad,0x350)](),_0x17b6c6=this['getUVByPoint'](_0x6b6818['lng'],_0x6b6818['lat']);if(_0x17b6c6&&_0x17b6c6[0x2]>0x0)break;}function _0xff742c(_0x5ca65f,_0x3b8d9d){return _0x25a800(_0x3b8d9d,_0x5ca65f-0x196);}if(!_0x17b6c6)return _0x1a608b;const _0x201db3=_0x6b6818[_0xff742c(0x46e,0x416)]+this['_calc_speedRate'][0x0]*_0x17b6c6[0x0],_0x83f160=_0x6b6818[_0xff742c(0x4c2,0x4c8)]+this['_calc_speedRate'][0x1]*_0x17b6c6[0x1];return _0x1a608b['lng']=_0x6b6818[_0xff742c(0x46e,0x4d9)],_0x1a608b['lat']=_0x6b6818[_0x34d57e(0x3d0,0x426)],_0x1a608b['tlng']=_0x201db3,_0x1a608b['tlat']=_0x83f160,_0x1a608b['age']=Math['round'](Math[_0x34d57e(0x43b,0x467)]()*this['maxAge']),_0x1a608b['speed']=_0x17b6c6[0x2],_0x1a608b;}['destroy'](){for(const _0x5d2bf7 in this){delete this[_0x5d2bf7];}}}function fRandomByfloat(_0x1cda00,_0x2b668c){function _0x4c85be(_0x6430d,_0x12a6e1){return _0x25a800(_0x12a6e1,_0x6430d- -0x513);}return _0x1cda00+Math[_0x4c85be(-0x17c,-0x178)]()*(_0x2b668c-_0x1cda00);}const Cesium=mars3d__namespace['Cesium'],BaseLayer=mars3d__namespace[_0x263d96(0xb7,0x14f)][_0x25a800(0x34d,0x356)];class CanvasWindLayer extends BaseLayer{constructor(_0xf702fc={}){super(_0xf702fc);function _0x4d72ca(_0x2f2d2d,_0x1aac24){return _0x25a800(_0x1aac24,_0x2f2d2d- -0x57b);}this['_setOptionsHook'](_0xf702fc),this['canvas']=null;function _0x48b9b1(_0x4cb6c4,_0x500f24){return _0x263d96(_0x500f24,_0x4cb6c4- -0x107);}_0xf702fc['colors']&&_0xf702fc[_0x4d72ca(-0x257,-0x27c)]&&(this['_colorRamp']=new mars3d__namespace[(_0x48b9b1(0x36,0x30))](_0xf702fc));}[_0x25a800(0x395,0x348)](_0x2f9417,_0x2e4198){this[_0x3a5056(0x1ce,0x1bd)]=0x3e8/(_0x2f9417[_0x3a5056(0x2af,0x22d)]||0xa),this[_0x27b2b4(0x35c,0x367)]=this[_0x3a5056(0x1c1,0x183)]['pointerEvents']??![],this['color']=_0x2f9417['color']||_0x27b2b4(0x33d,0x2d9);function _0x27b2b4(_0x5e2b33,_0x56ef3e){return _0x263d96(_0x56ef3e,_0x5e2b33-0x1c8);}function _0x3a5056(_0x26dff8,_0x1ce01d){return _0x263d96(_0x1ce01d,_0x26dff8-0xaa);}this['lineWidth']=_0x2f9417['lineWidth']||0x1,this['fixedHeight']=_0x2f9417[_0x27b2b4(0x2a8,0x2dc)]??0x0,this['reverseY']=_0x2f9417['reverseY']??![],this['windField']&&this['windField']['setOptions'](_0x2f9417);}get['layer'](){function _0x6d1900(_0x3e62a4,_0x46baea){return _0x263d96(_0x46baea,_0x3e62a4- -0x104);}return this[_0x6d1900(0xaf,0x5f)];}get[_0x263d96(0x17b,0x1c2)](){function _0x5b4758(_0x2fc88f,_0x2db14c){return _0x263d96(_0x2db14c,_0x2fc88f-0x107);}return this['_map'][_0x5b4758(0x29a,0x2de)]['canvas']['clientWidth'];}get['canvasHeight'](){function _0x3fb67f(_0x37145c,_0x5a0513){return _0x25a800(_0x5a0513,_0x37145c-0x173);}return this['_map']['scene'][_0x3fb67f(0x4e5,0x4d3)]['clientHeight'];}get[_0x263d96(0x17c,0x198)](){return this['_pointerEvents'];}set[_0x263d96(0x1d7,0x198)](_0x2b2263){this['_pointerEvents']=_0x2b2263;function _0x111296(_0x26d13d,_0x362f77){return _0x25a800(_0x362f77,_0x26d13d- -0x48e);}function _0x5cd4b6(_0x506c6e,_0x2a77e1){return _0x263d96(_0x2a77e1,_0x506c6e-0x11d);}if(!this[_0x5cd4b6(0x2d0,0x241)])return;_0x2b2263?this['canvas']['style'][_0x111296(-0x158,-0x109)]='all':this['canvas']['style']['pointer-events']='none';}get['particlesNumber'](){function _0x16d971(_0x379862,_0x1c0f20){return _0x263d96(_0x1c0f20,_0x379862- -0x2a8);}return this[_0x16d971(-0x191,-0x1e2)]['particlesNumber'];}set['particlesNumber'](_0x3543a8){this[_0x13faf0(0x42f,0x3a2)][_0x13faf0(0x504,0x4f7)]=_0x3543a8;function _0x13faf0(_0x49b2cb,_0x42ef01){return _0x263d96(_0x42ef01,_0x49b2cb-0x318);}clearTimeout(this['_canrefresh']);function _0xca797b(_0x796e03,_0x15654b){return _0x25a800(_0x15654b,_0x796e03-0xd7);}this['_canrefresh']=setTimeout(()=>{function _0x1fc7bc(_0x470484,_0xeac2cb){return _0x13faf0(_0x470484- -0x2c,_0xeac2cb);}this[_0x1fc7bc(0x425,0x485)]();},0x1f4);}get[_0x25a800(0x322,0x2e5)](){function _0x5c66f2(_0x18218d,_0x4b557b){return _0x263d96(_0x4b557b,_0x18218d- -0x2a3);}return this['options'][_0x5c66f2(-0x17d,-0x10a)];}set['speedRate'](_0x548d48){this[_0x4dcff2(0x36e,0x2f2)]['speedRate']=_0x548d48;function _0x4dcff2(_0x344b87,_0x49ccbc){return _0x25a800(_0x344b87,_0x49ccbc-0x1c);}function _0x3e2e8a(_0x5886fe,_0x18614b){return _0x263d96(_0x5886fe,_0x18614b-0x202);}this['windField']&&(this['windField'][_0x4dcff2(0x314,0x301)]=_0x548d48);}get[_0x25a800(0x401,0x376)](){function _0x5cb8a2(_0x285364,_0x2c5e83){return _0x263d96(_0x285364,_0x2c5e83- -0xd);}return this[_0x5cb8a2(0xa4,0x10a)]['maxAge'];}set['maxAge'](_0x43ba65){this['options']['maxAge']=_0x43ba65,this['windField']&&(this['windField']['maxAge']=_0x43ba65);}get['data'](){return this['windData'];}set['data'](_0x5cada9){function _0x3cc80f(_0x2a1855,_0x3a060c){return _0x25a800(_0x2a1855,_0x3a060c- -0x1d0);}this[_0x3cc80f(0xf7,0x17d)](_0x5cada9);}['_showHook'](_0x3be880){function _0x6038b3(_0x2a571f,_0x3fe44e){return _0x25a800(_0x2a571f,_0x3fe44e- -0x201);}function _0x11ae9f(_0x3ec583,_0x377d26){return _0x263d96(_0x377d26,_0x3ec583-0x336);}_0x3be880?this['_addedHook']():(this[_0x11ae9f(0x51f,0x589)]&&(this['options'][_0x6038b3(0x15c,0x193)]=this['windData']),this[_0x6038b3(0x139,0x177)]());}['_mountedHook'](){function _0x32c5d5(_0x276744,_0x196715){return _0x25a800(_0x276744,_0x196715- -0x437);}function _0x18414c(_0x163d37,_0x49ba9c){return _0x25a800(_0x49ba9c,_0x163d37-0xa5);}this['options'][_0x18414c(0x391,0x30d)]?this['initWorker']():this['windField']=new CanvasWindField(this[_0x18414c(0x37b,0x3b6)]);}['_addedHook'](){this['canvas']=this[_0x445b8b(-0x141,-0x1ac)]();const _0x177fed={};function _0x5f19df(_0x3802bc,_0x21e6df){return _0x25a800(_0x3802bc,_0x21e6df- -0x4e4);}_0x177fed['willReadFrequently']=!![],this['canvasContext']=this['canvas']['getContext']('2d',_0x177fed);function _0x445b8b(_0x27f745,_0x4f4848){return _0x263d96(_0x27f745,_0x4f4848- -0x2bc);}this['bindEvent'](),this[_0x5f19df(-0x1f5,-0x20e)]['data']&&this['setData'](this[_0x5f19df(-0x245,-0x20e)]['data']);}['_removedHook'](){this[_0x24f624(0x560,0x568)]();function _0x52b03e(_0x56fe93,_0x41d6dd){return _0x263d96(_0x41d6dd,_0x56fe93-0x259);}this['unbindEvent']();function _0x24f624(_0x35792d,_0x35f014){return _0x25a800(_0x35f014,_0x35792d-0x20f);}this[_0x24f624(0x581,0x5e9)]&&(this['_map'][_0x24f624(0x549,0x584)][_0x24f624(0x563,0x547)](this['canvas']),delete this['canvas']);}[_0x263d96(0xbd,0x110)](){const _0x5e64a8=mars3d__namespace['DomUtil']['create']('canvas','mars3d-canvasWind',this['_map']['container']);_0x5e64a8[_0x368720(-0x9d,-0x128)]['position']=_0x44da2b(0x61,0xdc),_0x5e64a8['style']['top']='0px',_0x5e64a8['style']['left']='0px',_0x5e64a8[_0x44da2b(0xa,-0x73)]['width']=this[_0x368720(-0xf5,-0xa3)]['scene']['canvas']['clientWidth']+'px',_0x5e64a8[_0x44da2b(0xa,-0x73)][_0x44da2b(0xe,0xa0)]=this[_0x44da2b(0x8f,0x122)]['scene']['canvas']['clientHeight']+'px';function _0x368720(_0xb2dc05,_0x1cd8fa){return _0x263d96(_0xb2dc05,_0x1cd8fa- -0x2ab);}function _0x44da2b(_0x40b7e4,_0x549c9e){return _0x263d96(_0x549c9e,_0x40b7e4- -0x179);}return _0x5e64a8[_0x44da2b(0xa,0x2f)]['pointerEvents']=this['_pointerEvents']?'auto':_0x44da2b(0x3d,0x99),_0x5e64a8['style']['zIndex']=this[_0x368720(-0x1d0,-0x194)][_0x368720(-0x8b,-0xc1)]??0x9,_0x5e64a8[_0x368720(-0xbc,-0xf0)]=this[_0x44da2b(0x8f,0xc)]['scene'][_0x368720(-0x127,-0xf8)]['clientWidth'],_0x5e64a8[_0x368720(-0x163,-0x124)]=this['_map'][_0x368720(-0x1ac,-0x118)]['canvas']['clientHeight'],_0x5e64a8;}[_0x25a800(0x36e,0x39f)](){function _0x24c86e(_0x3da96d,_0x559e7e){return _0x25a800(_0x3da96d,_0x559e7e- -0x575);}function _0x53df7c(_0x1a2ef0,_0x119999){return _0x25a800(_0x119999,_0x1a2ef0-0xf8);}this['canvas']&&(this['canvas'][_0x53df7c(0x43a,0x490)]['width']=this[_0x24c86e(-0x127,-0x1ae)][_0x53df7c(0x44a,0x4b2)]['canvas']['clientWidth']+'px',this['canvas'][_0x24c86e(-0x2c4,-0x233)]['height']=this[_0x24c86e(-0x146,-0x1ae)]['scene']['canvas'][_0x53df7c(0x4be,0x517)]+'px',this['canvas'][_0x53df7c(0x472,0x4d9)]=this[_0x24c86e(-0x13c,-0x1ae)]['scene']['canvas']['clientWidth'],this['canvas'][_0x53df7c(0x43e,0x443)]=this['_map']['scene'][_0x24c86e(-0x1f4,-0x203)]['clientHeight']);}[_0x25a800(0x293,0x2f1)](){const _0x2e1450=this;let _0x3ebfb8=Date[_0xc20200(-0x7b,-0x72)]();(function _0x45e066(){if(_0x2e1450['isDestroy'])return;_0x2e1450['_animateFrame']=window['requestAnimationFrame'](_0x45e066);if(_0x2e1450['show']&&_0x2e1450['windField']){const _0x4c87a0=Date['now'](),_0x27f677=_0x4c87a0-_0x3ebfb8;_0x27f677>_0x2e1450['frameTime']&&(_0x3ebfb8=_0x4c87a0-_0x27f677%_0x2e1450['frameTime'],_0x2e1450['update']());}}());function _0x2c63f0(_0xe7d358,_0x839f97){return _0x25a800(_0x839f97,_0xe7d358-0x10b);}function _0xc20200(_0x4f6a19,_0x420bd1){return _0x263d96(_0x4f6a19,_0x420bd1- -0x180);}window['addEventListener'](_0x2c63f0(0x4aa,0x48f),this[_0x2c63f0(0x4aa,0x4b3)]['bind'](this),![]),this[_0xc20200(-0x12,0x30)]=![],this['mouse_move']=![],this[_0x2c63f0(0x3e1,0x39d)]['mouseHidden']&&(this['_map']['on'](mars3d__namespace['EventType'][_0x2c63f0(0x42e,0x4b4)],this['_onMapWhellEvent'],this),this['_map']['on'](mars3d__namespace['EventType'][_0xc20200(0x82,0x2f)],this['_onMouseDownEvent'],this),this['_map']['on'](mars3d__namespace[_0xc20200(-0x9,-0x1f)]['mouseUp'],this['_onMouseUpEvent'],this));}['unbindEvent'](){window['cancelAnimationFrame'](this['_animateFrame']);function _0x235f80(_0x1e5879,_0x504f44){return _0x25a800(_0x504f44,_0x1e5879- -0x1e7);}delete this[_0x235f80(0xb7,0x103)];function _0x5d3590(_0x22fcd8,_0x35f0e1){return _0x263d96(_0x35f0e1,_0x22fcd8-0x2be);}window['removeEventListener']('resize',this['resize']),this['options'][_0x235f80(0x19c,0x18d)]&&(this['_map'][_0x235f80(0xf8,0x8d)](mars3d__namespace['EventType']['wheel'],this[_0x5d3590(0x3ad,0x3a9)],this),this['_map']['off'](mars3d__namespace['EventType'][_0x5d3590(0x46d,0x485)],this['_onMouseDownEvent'],this),this[_0x5d3590(0x4c6,0x507)][_0x235f80(0xf8,0x10a)](mars3d__namespace[_0x235f80(0x139,0x169)]['mouseUp'],this[_0x235f80(0x119,0x159)],this),this['_map']['off'](mars3d__namespace[_0x235f80(0x139,0x10c)]['mouseMove'],this['_onMouseMoveEvent'],this));}['_onMapWhellEvent'](_0x14c56e){function _0x8c37db(_0xaa1b6d,_0x3b2b87){return _0x25a800(_0x3b2b87,_0xaa1b6d-0xe5);}function _0x336165(_0x16ffda,_0x5c3649){return _0x263d96(_0x5c3649,_0x16ffda-0x34c);}clearTimeout(this['refreshTimer']);if(!this[_0x336165(0x476,0x434)]||!this['canvas'])return;this[_0x8c37db(0x457,0x44c)][_0x8c37db(0x427,0x427)]['visibility']='hidden',this[_0x336165(0x48f,0x48c)]=setTimeout(()=>{if(!this['show'])return;function _0x5a7357(_0x1b169d,_0x5b0c76){return _0x336165(_0x5b0c76- -0x3fa,_0x1b169d);}this[_0x5a7357(0x4e,0x8b)]();function _0x7faec(_0x3b41f3,_0x8b65fb){return _0x8c37db(_0x8b65fb- -0x80,_0x3b41f3);}this[_0x5a7357(0xf0,0x105)]['style']['visibility']='visible';},0xc8);}[_0x263d96(0x1eb,0x1d0)](_0x9cc400){this[_0x7c7de3(-0x1ce,-0x1f9)]=!![],this[_0x6a17f7(0x8b,0xaa)][_0x6a17f7(-0x5d,-0x51)](mars3d__namespace['EventType'][_0x7c7de3(-0x29b,-0x258)],this[_0x6a17f7(0x52,0xe0)],this);function _0x6a17f7(_0x250d67,_0x2756a){return _0x25a800(_0x2756a,_0x250d67- -0x33c);}function _0x7c7de3(_0x50b8fd,_0x501e79){return _0x25a800(_0x50b8fd,_0x501e79- -0x568);}this[_0x7c7de3(-0x14e,-0x1a1)]['on'](mars3d__namespace['EventType'][_0x7c7de3(-0x239,-0x258)],this[_0x7c7de3(-0x22f,-0x1da)],this);}[_0x25a800(0x424,0x38e)](_0x4e5a6d){function _0x4147be(_0x140caa,_0x3ecf2e){return _0x25a800(_0x3ecf2e,_0x140caa- -0x293);}if(!this[_0x4147be(0x56,-0x27)]||!this['canvas'])return;this['mouse_down']&&(this['canvas']['style']['visibility']='hidden',this['mouse_move']=!![]);}['_onMouseUpEvent'](_0x164b7e){if(!this[_0x454cee(0x18c,0x113)]||!this['canvas'])return;this['_map']['off'](mars3d__namespace['EventType'][_0x454cee(0x1b3,0x226)],this[_0x45f931(0x321,0x2a3)],this);function _0x45f931(_0x3fc249,_0x34bff1){return _0x263d96(_0x34bff1,_0x3fc249-0x152);}this[_0x454cee(0x212,0x189)]&&this['mouse_move']&&this[_0x45f931(0x28b,0x318)]();this['canvas']['style'][_0x454cee(0x1ff,0x248)]=_0x454cee(0x25b,0x256);function _0x454cee(_0x48219c,_0x215fb6){return _0x263d96(_0x215fb6,_0x48219c-0x62);}this['mouse_down']=![],this['mouse_move']=![];}[_0x25a800(0x38e,0x34d)](_0x1bfec9){this['clear'](),this['windData']=_0x1bfec9;function _0x4b6133(_0x5abbb8,_0x419882){return _0x25a800(_0x419882,_0x5abbb8- -0x421);}this['windField']['setDate'](_0x1bfec9),this[_0x4b6133(-0x129,-0x191)]();}['redraw'](){function _0x3bb744(_0x1ccb90,_0x43bda9){return _0x25a800(_0x43bda9,_0x1ccb90- -0x527);}if(!this['show'])return;this['windField'][_0x3bb744(-0x1bb,-0x138)](this[_0x3bb744(-0x251,-0x1b8)]);function _0xfc1f7f(_0x2dd9b5,_0x38edce){return _0x25a800(_0x2dd9b5,_0x38edce- -0x510);}this['update']();}['update'](){if(this['_updateIng'])return;function _0x563cb8(_0x19673e,_0x1236a3){return _0x25a800(_0x19673e,_0x1236a3- -0x2bb);}this[_0x563cb8(0x93,0x56)]=!![];function _0x42d765(_0x24f242,_0x424e89){return _0x25a800(_0x424e89,_0x24f242- -0x2e5);}if(this[_0x563cb8(0x22,0x31)])this['windField'][_0x563cb8(0x5f,0x7a)]();else{const _0x228a99=this[_0x42d765(0x4c,0xe)]['getParticles']();this[_0x42d765(-0x1f,0x2f)](_0x228a99);}this['_updateIng']=![];}['_drawLines'](_0x2a11ab){this['canvasContext']['globalCompositeOperation']=_0xfc6806(-0xf9,-0x99),this['canvasContext']['fillRect'](0x0,0x0,this[_0xfc6806(-0x9,-0x61)],this['canvasHeight']);function _0x2e9567(_0x280ffc,_0x33946d){return _0x263d96(_0x33946d,_0x280ffc-0x39b);}this['canvasContext'][_0xfc6806(-0xa2,-0xc8)]=_0x2e9567(0x599,0x61f),this[_0xfc6806(-0x87,-0x41)]['globalAlpha']=0.9;const _0x5510ac=this['_map']['scene'][_0x2e9567(0x4d6,0x43d)]!==Cesium[_0xfc6806(-0x131,-0xf3)][_0xfc6806(-0xae,-0xb9)],_0x4f0c38=this[_0xfc6806(0x7,-0x61)]*0.25;function _0xfc6806(_0x1ed89b,_0x37c842){return _0x25a800(_0x1ed89b,_0x37c842- -0x3e2);}if(this['_colorRamp'])for(let _0x1f801c=0x0,_0x2fab29=_0x2a11ab[_0xfc6806(-0x24,-0x62)];_0x1f801c<_0x2fab29;_0x1f801c++){const _0x4e91b7=_0x2a11ab[_0x1f801c],_0x1079e6=this['_tomap'](_0x4e91b7[_0xfc6806(-0xd6,-0x10a)],_0x4e91b7[_0xfc6806(-0xa5,-0xb6)],_0x4e91b7),_0x297120=this['_tomap'](_0x4e91b7[_0xfc6806(0x2a,-0x42)],_0x4e91b7['tlat'],_0x4e91b7);if(!_0x1079e6||!_0x297120)continue;if(_0x5510ac&&Math['abs'](_0x1079e6[0x0]-_0x297120[0x0])>=_0x4f0c38)continue;this[_0xfc6806(-0x35,-0x41)][_0x2e9567(0x5a8,0x539)](),this['canvasContext'][_0x2e9567(0x49f,0x519)]=this[_0xfc6806(-0x126,-0x11f)],this['canvasContext']['strokeStyle']=this[_0x2e9567(0x55a,0x526)][_0x2e9567(0x53e,0x4ec)](_0x4e91b7['speed']),this['canvasContext']['moveTo'](_0x1079e6[0x0],_0x1079e6[0x1]),this['canvasContext'][_0x2e9567(0x498,0x518)](_0x297120[0x0],_0x297120[0x1]),this[_0xfc6806(-0x73,-0x41)][_0x2e9567(0x4a3,0x4ee)]();}else{this['canvasContext']['beginPath'](),this[_0x2e9567(0x57d,0x603)]['lineWidth']=this['lineWidth'],this['canvasContext']['strokeStyle']=this['color'];for(let _0x1d752e=0x0,_0x15bcf5=_0x2a11ab['length'];_0x1d752e<_0x15bcf5;_0x1d752e++){const _0x369f91=_0x2a11ab[_0x1d752e],_0x1300f9=this['_tomap'](_0x369f91['lng'],_0x369f91['lat'],_0x369f91),_0x2f27a0=this[_0x2e9567(0x55b,0x559)](_0x369f91['tlng'],_0x369f91['tlat'],_0x369f91);if(!_0x1300f9||!_0x2f27a0)continue;if(_0x5510ac&&Math['abs'](_0x1300f9[0x0]-_0x2f27a0[0x0])>=_0x4f0c38)continue;this[_0x2e9567(0x57d,0x5d8)][_0x2e9567(0x545,0x4b9)](_0x1300f9[0x0],_0x1300f9[0x1]),this[_0xfc6806(-0x2e,-0x41)]['lineTo'](_0x2f27a0[0x0],_0x2f27a0[0x1]);}this['canvasContext'][_0x2e9567(0x4a3,0x49e)]();}}['_tomap'](_0x2dfbf6,_0x5a6330,_0xcc85e9){const _0xe4ac22=Cesium[_0x53305f(0x46b,0x422)]['fromDegrees'](_0x2dfbf6,_0x5a6330,this['fixedHeight']),_0x570626=this['_map'][_0xf8ed47(0x38,0x4)];function _0xf8ed47(_0x361728,_0x592ce0){return _0x25a800(_0x592ce0,_0x361728- -0x31a);}if(_0x570626[_0x53305f(0x3cf,0x42c)]===Cesium['SceneMode'][_0x53305f(0x490,0x45b)]){const _0x3d1f66=new Cesium[(_0x53305f(0x3c8,0x404))](_0x570626[_0xf8ed47(-0x78,-0x8d)]['ellipsoid'],_0x570626['camera']['positionWC']),_0x550f86=_0x3d1f66[_0xf8ed47(-0x7a,-0x50)](_0xe4ac22);if(!_0x550f86)return _0xcc85e9['age']=0x0,null;}const _0x5c5c68=Cesium[_0xf8ed47(0x3,0x80)][_0x53305f(0x43f,0x424)](this[_0xf8ed47(0xad,0x59)][_0x53305f(0x42a,0x484)],_0xe4ac22);function _0x53305f(_0x209273,_0x4a3d20){return _0x263d96(_0x209273,_0x4a3d20-0x2f1);}return _0x5c5c68?[_0x5c5c68['x'],_0x5c5c68['y']]:null;}['clear'](){function _0x4a8f77(_0x56b9e2,_0x11e6f9){return _0x263d96(_0x56b9e2,_0x11e6f9-0x8c);}this[_0x4a8f77(0x200,0x1fe)][_0x4a8f77(0x1e3,0x21e)]();function _0x3e231a(_0x4923d0,_0x365597){return _0x25a800(_0x365597,_0x4923d0- -0x520);}delete this[_0x3e231a(-0x178,-0x1bc)];}[_0x263d96(0x1cd,0x15a)](){function _0x289e72(_0x2ada84,_0x184c36){return _0x25a800(_0x2ada84,_0x184c36- -0x189);}this[_0x884a75(-0x27,-0x48)]=new Worker(this[_0x884a75(-0x3d,-0x4a)]['worker']);function _0x884a75(_0x1e996f,_0x91735){return _0x263d96(_0x91735,_0x1e996f- -0x154);}this['worker'][_0x884a75(0x61,0x5c)]=_0x110828=>{this[_0xc1a435(-0x1e0,-0x237)](_0x110828['data'][_0xc1a435(-0x1f0,-0x219)]);function _0x4e3e70(_0xc92f9b,_0x582bbc){return _0x884a75(_0x582bbc- -0x79,_0xc92f9b);}function _0xc1a435(_0x4a3104,_0x4bd963){return _0x289e72(_0x4bd963,_0x4a3104- -0x31d);}this['_updateIng2']=![];},this['windField']={'init':_0x33159f=>{const _0x5f356b={};_0x5f356b['type']='init',_0x5f356b['options']=_0x33159f,this['worker']['postMessage'](_0x5f356b);},'setOptions':_0x2b3f15=>{const _0x1df6db={};function _0x368d09(_0x545b37,_0x5e6f74){return _0x289e72(_0x545b37,_0x5e6f74- -0x8b);}function _0x504929(_0x18d751,_0x282dc2){return _0x289e72(_0x18d751,_0x282dc2-0x12c);}_0x1df6db[_0x504929(0x2eb,0x33d)]='setOptions',_0x1df6db[_0x368d09(0x95,0xc2)]=_0x2b3f15,this['worker']['postMessage'](_0x1df6db);},'setDate':_0x301918=>{function _0x3e106a(_0x55217,_0x4bdfa9){return _0x289e72(_0x4bdfa9,_0x55217- -0x352);}function _0x1899ad(_0x26ea7c,_0x47881c){return _0x884a75(_0x26ea7c-0x2a4,_0x47881c);}const _0x172c24={};_0x172c24['type']=_0x1899ad(0x2a5,0x232),_0x172c24['data']=_0x301918,this['worker'][_0x1899ad(0x259,0x2ac)](_0x172c24);},'update':()=>{function _0x22bc43(_0x3bbde9,_0x3c0b5f){return _0x289e72(_0x3c0b5f,_0x3bbde9-0x19d);}function _0x1b9c6e(_0x28b18b,_0x3c89a3){return _0x884a75(_0x3c89a3-0x25c,_0x28b18b);}if(this[_0x1b9c6e(0x294,0x26b)])return;this['_updateIng2']=!![];const _0x54f8ae={};_0x54f8ae['type']='update',this[_0x22bc43(0x300,0x273)]['postMessage'](_0x54f8ae);},'clear':()=>{const _0x5dbcbf={};function _0x11d232(_0x5df9bc,_0x8ac431){return _0x289e72(_0x8ac431,_0x5df9bc-0x28e);}_0x5dbcbf['type']=_0x11d232(0x456,0x46c),this['worker']['postMessage'](_0x5dbcbf);}},this[_0x289e72(0x1bf,0x1a8)]['init'](this['options']);}}mars3d__namespace['LayerUtil']['register'](_0x25a800(0x33e,0x3b7),CanvasWindLayer),mars3d__namespace[_0x25a800(0x281,0x30e)]['CanvasWindLayer']=CanvasWindLayer,mars3d__namespace[_0x25a800(0x420,0x3a2)]=CanvasWindField,mars3d__namespace[_0x25a800(0x219,0x2ad)]=WindUtil,exports[_0x25a800(0x3ae,0x3a2)]=CanvasWindField,exports['CanvasWindLayer']=CanvasWindLayer,exports[_0x263d96(0x1f4,0x1ee)]=WindLayer,exports['WindUtil']=WindUtil;const _0x498770={};_0x498770['value']=!![],Object['defineProperty'](exports,_0x263d96(0x1a2,0x1e6),_0x498770);
|
|
15
|
+
}));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mars3d-wind",
|
|
3
|
-
"version": "3.7.
|
|
3
|
+
"version": "3.7.22",
|
|
4
4
|
"description": "Mars3D平台插件,支持气象 风向图 功能插件",
|
|
5
5
|
"main": "dist/mars3d-wind.js",
|
|
6
6
|
"files": [
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
],
|
|
9
9
|
"peerDependencies": {},
|
|
10
10
|
"devDependencies": {
|
|
11
|
-
"mars3d": "~3.7.
|
|
11
|
+
"mars3d": "~3.7.22"
|
|
12
12
|
},
|
|
13
13
|
"scripts": {
|
|
14
14
|
"lint": "eslint ./src/**/*.{js,ts} --fix"
|