mars3d-wind 3.4.20 → 3.4.21
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 +3 -3
- package/package.json +2 -2
package/dist/mars3d-wind.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Mars3D平台插件,支持气象 风向图 功能插件 mars3d-wind
|
|
3
3
|
*
|
|
4
|
-
* 版本信息:v3.4.
|
|
5
|
-
* 编译日期:2023-01-
|
|
4
|
+
* 版本信息:v3.4.21
|
|
5
|
+
* 编译日期:2023-01-17 20:42:48
|
|
6
6
|
* 版权所有:Copyright by 火星科技 http://mars3d.cn
|
|
7
7
|
* 使用单位:免费公开版 ,2022-06-01
|
|
8
8
|
*/
|
|
@@ -11,5 +11,5 @@
|
|
|
11
11
|
typeof define === 'function' && define.amd ? define(['exports', 'mars3d'], factory) :
|
|
12
12
|
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["mars3d-wind"] = {}, global.mars3d));
|
|
13
13
|
})(this, (function (exports, mars3d) {
|
|
14
|
-
'use strict';var _0x5a162f=_0x4cc5;(function(_0x1a41e6,_0x35dd1a){var _0x395420=_0x4cc5,_0x3486d4=_0x1a41e6();while(!![]){try{var _0x32fa6b=parseInt(_0x395420(0x120))/0x1+parseInt(_0x395420(0xd5))/0x2+parseInt(_0x395420(0x199))/0x3+parseInt(_0x395420(0x1bb))/0x4+parseInt(_0x395420(0x122))/0x5*(parseInt(_0x395420(0x1a0))/0x6)+parseInt(_0x395420(0x1af))/0x7*(parseInt(_0x395420(0x15c))/0x8)+parseInt(_0x395420(0x1ad))/0x9*(-parseInt(_0x395420(0x162))/0xa);if(_0x32fa6b===_0x35dd1a)break;else _0x3486d4['push'](_0x3486d4['shift']());}catch(_0x51f892){_0x3486d4['push'](_0x3486d4['shift']());}}}(_0x34ba,0x894fc));function _interopNamespace(_0x2bc4a3){if(_0x2bc4a3&&_0x2bc4a3['__esModule'])return _0x2bc4a3;var _0x3352c1=Object['create'](null);return _0x2bc4a3&&Object['keys'](_0x2bc4a3)['forEach'](function(_0x227542){var _0x17f1ac=_0x4cc5;if(_0x227542!=='default'){var _0x443ce9=Object[_0x17f1ac(0x17e)](_0x2bc4a3,_0x227542);Object['defineProperty'](_0x3352c1,_0x227542,_0x443ce9['get']?_0x443ce9:{'enumerable':!![],'get':function(){return _0x2bc4a3[_0x227542];}});}}),_0x3352c1['default']=_0x2bc4a3,_0x3352c1;}var mars3d__namespace=_interopNamespace(mars3d),Cesium$7=mars3d__namespace['Cesium'];function getU(_0x33822b,_0xcc6a5b){var _0x690b13=_0x4cc5,_0x485545=_0x33822b*Math['cos'](Cesium$7['Math'][_0x690b13(0x115)](_0xcc6a5b));return _0x485545;}function getV(_0x38e04b,_0x231ec4){var _0x46bd54=_0x38e04b*Math['sin'](Cesium$7['Math']['toRadians'](_0x231ec4));return _0x46bd54;}function getSpeed(_0x3b842a,_0x205f74){var _0x43e181=Math['sqrt'](Math['pow'](_0x3b842a,0x2)+Math['pow'](_0x205f74,0x2));return _0x43e181;}function _0x34ba(){var _0xb4fb62=['height','lng','string','from','Compute','BufferUsage','getOptions','mouse_down','apply','_calcUV','_data','32CFoUHp','particlesComputing','vdata','_bilinearInterpolation','nextTrailsDepth','outputTexture','170CInCTG','Cartesian2','appendChild','ymin','value','getUVByPoint','getColorTexture','camera','container','UNSIGNED_BYTE','clientHeight','resize','trails','context','LayerUtil','key','Set','createRawRenderState','getExtent','createRenderingFramebuffers','_onMouseDownEvent','maxParticles','fromDegrees','_onMapWhellEvent','PixelFormat','postMessage','IDENTITY','bind','getOwnPropertyDescriptor','init','speedFactor','particlesTextures','cols','show','test','windTextures','Draw','enumerable','xmax','attributeLocations','setDate','applyViewerParameters','_removedHook','fadeOpacity','DEPTH_COMPONENT','RenderState','frameTime','geometry','ShaderProgram','GeometryAttribute','udata','BaseLayer','particleSystem','preExecute','OPAQUE','2585550qgIiKN','_canrefresh','createFramebuffer','fromGeometry','levmax','EllipsoidalOccluder','_onMouseUpEvent','6cmOpfx','WindUtil','bindEvent','destroy','NEAREST','stroke','windField','filter','canvasContext','object','nextParticlesSpeed','createParticlesTextures','segments','1860741yfzhnZ','drawingBufferWidth','1688575yBJguz','xmin','LINEAR','round','reverse','destroyObject','pointer-events','random','tlng','autoClear','drawingBufferHeight','forEach','2950812dQEbjd','Framebuffer','commandToExecute','_onMap_preRenderEvent','PrimitiveType','mouseMove','currentTrailsColor','viewerParameters','depthTest','options','fill','lonRange','EventType','getUVByXY','createCommand','SCENE3D','primitives','Super\x20expression\x20must\x20either\x20be\x20null\x20or\x20a\x20function','toDegrees','mouseDown','canvasWindy','tlat','_pointerEvents','FLOAT','418500qiQKyD','commandType','createTexture','0px','width','_createCanvas','_drawLines','ymax','Cesium','commandList','red','_updateIng','defined','maxAge','floor','framebuffer','removeAll','CanvasWindLayer','setOptions','Cartesian3','style','update','scene','now','off','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\x0avarying\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=\x20texture2D(currentParticlesSpeed,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec3\x20windVector\x20=\x20texture2D(particlesWind,\x20v_textureCoordinates).rgb;\x0a\x0a\x20\x20\x20\x20vec4\x20nextSpeed\x20=\x20vec4(speedFactor\x20*\x20pixelSize\x20*\x20windVector,\x20calculateWindNorm(windVector));\x0a\x20\x20\x20\x20gl_FragColor\x20=\x20nextSpeed;\x0a}','currentTrails','keys','requestAnimationFrame','_mountedHook','updateViewerParameters','_randomParticle','createSegmentsGeometry','min','uniform\x20sampler2D\x20postProcessingPosition;\x0auniform\x20sampler2D\x20nextParticlesSpeed;\x0a\x0avarying\x20vec2\x20v_textureCoordinates;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20vec4\x20randomParticle\x20=\x20texture2D(postProcessingPosition,\x20v_textureCoordinates);\x0a\x20\x20\x20\x20vec4\x20particleSpeed\x20=\x20texture2D(nextParticlesSpeed,\x20v_textureCoordinates);\x0a\x0a\x20\x20\x20\x20if\x20(randomParticle.a\x20>\x200.0)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20vec4(0.0);\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20particleSpeed;\x0a\x20\x20\x20\x20}\x0a}','particlesNumber','Object','wheel','refreshParticles','lev','ellipsoid','mouse_move','dimensions','visibility','setData','postProcessingPosition','PI_OVER_THREE','all','rawRenderState','__proto__','refreshTimer','SceneTransforms','TWO_PI','auto','log','Pass','lon','Math','_speedRate','age','lineWidth','particlesRendering','_tomap','getFullscreenQuad','toRadians','windData','layer','canvasHeight','framebuffers','removeChild','RGBA','uniform\x20sampler2D\x20segmentsColorTexture;\x0d\x0auniform\x20sampler2D\x20segmentsDepthTexture;\x0d\x0a\x0d\x0auniform\x20sampler2D\x20currentTrailsColor;\x0d\x0auniform\x20sampler2D\x20trailsDepthTexture;\x0d\x0a\x0d\x0auniform\x20float\x20fadeOpacity;\x0d\x0a\x0d\x0avarying\x20vec2\x20textureCoordinate;\x0d\x0a\x0d\x0avoid\x20main()\x20{\x0d\x0a\x20\x20\x20\x20vec4\x20pointsColor\x20=\x20texture2D(segmentsColorTexture,\x20textureCoordinate);\x0d\x0a\x20\x20\x20\x20vec4\x20trailsColor\x20=\x20texture2D(currentTrailsColor,\x20textureCoordinate);\x0d\x0a\x0d\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\x0d\x0a\x0d\x0a\x20\x20\x20\x20float\x20pointsDepth\x20=\x20texture2D(segmentsDepthTexture,\x20textureCoordinate).r;\x0d\x0a\x20\x20\x20\x20float\x20trailsDepth\x20=\x20texture2D(trailsDepthTexture,\x20textureCoordinate).r;\x0d\x0a\x20\x20\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture2D(czm_globeDepthTexture,\x20textureCoordinate));\x0d\x0a\x0d\x0a\x20\x20\x20\x20gl_FragColor\x20=\x20vec4(0.0);\x0d\x0a\x20\x20\x20\x20if\x20(pointsDepth\x20<\x20globeDepth)\x20{\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20gl_FragColor\x20+\x20pointsColor;\x0d\x0a\x20\x20\x20\x20}\x0d\x0a\x20\x20\x20\x20if\x20(trailsDepth\x20<\x20globeDepth)\x20{\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20gl_FragColor\x20+\x20trailsColor;\x0d\x0a\x20\x20\x20\x20}\x0d\x0a\x20\x20\x20\x20gl_FragDepthEXT\x20=\x20min(pointsDepth,\x20trailsDepth);\x0d\x0a}','colorTable','RGB','configurable','183972SxaSRG','particles','5597430yfUlLE','data','rows','textures','defineProperties','redraw','class','register','reverseY','prototype','particlesWind','addEventListener','worker','globe','length','Sampler','currentParticlesSpeed','add','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\x0avarying\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=\x20texture2D(nextParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec4\x20nextSpeed\x20=\x20texture2D(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\x20gl_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\x20gl_FragColor\x20=\x20vec4(nextParticle,\x200.0);\x0a\x20\x20\x20\x20}\x0a}','canvasWind','writable','mod','getOwnPropertySymbols','primitiveType','lat','postProcessingSpeed','isArray','west','PI_OVER_TWO','_map','segmentsDepth','construct','vertexArray','clearCommand','Cannot\x20call\x20a\x20class\x20as\x20a\x20function','grid','_addedHook','slice','canvas','currentParticlesPosition','max','ShaderSource','SceneMode','Geometry','_calc_speedRate','strokeStyle','constructor'];_0x34ba=function(){return _0xb4fb62;};return _0x34ba();}function getDirection(_0x5433ab,_0x7a700){var _0x3066e0=_0x4cc5,_0x5b42ca=Cesium$7[_0x3066e0(0x10e)]['toDegrees'](Math['atan2'](_0x7a700,_0x5433ab));return _0x5b42ca+=_0x5b42ca<0x0?0x168:0x0,_0x5b42ca;}var WindUtil={'__proto__':null,'getU':getU,'getV':getV,'getSpeed':getSpeed,'getDirection':getDirection};function ownKeys(_0x124f2c,_0x18edd3){var _0x31255d=_0x4cc5,_0x3ce6b3=Object['keys'](_0x124f2c);if(Object[_0x31255d(0x138)]){var _0x28a310=Object['getOwnPropertySymbols'](_0x124f2c);_0x18edd3&&(_0x28a310=_0x28a310[_0x31255d(0x1a7)](function(_0x3ad53b){var _0x33e244=_0x31255d;return Object['getOwnPropertyDescriptor'](_0x124f2c,_0x3ad53b)[_0x33e244(0x187)];})),_0x3ce6b3['push']['apply'](_0x3ce6b3,_0x28a310);}return _0x3ce6b3;}function _objectSpread2(_0x3cfaaa){var _0x3480b4=_0x4cc5;for(var _0x129043=0x1;_0x129043<arguments['length'];_0x129043++){var _0x20a5d8=null!=arguments[_0x129043]?arguments[_0x129043]:{};_0x129043%0x2?ownKeys(Object(_0x20a5d8),!0x0)['forEach'](function(_0x172f96){_defineProperty(_0x3cfaaa,_0x172f96,_0x20a5d8[_0x172f96]);}):Object['getOwnPropertyDescriptors']?Object[_0x3480b4(0x126)](_0x3cfaaa,Object['getOwnPropertyDescriptors'](_0x20a5d8)):ownKeys(Object(_0x20a5d8))[_0x3480b4(0x1ba)](function(_0x5a102f){Object['defineProperty'](_0x3cfaaa,_0x5a102f,Object['getOwnPropertyDescriptor'](_0x20a5d8,_0x5a102f));});}return _0x3cfaaa;}function _classCallCheck(_0x1ca0bc,_0x549806){var _0x3633e7=_0x4cc5;if(!(_0x1ca0bc instanceof _0x549806))throw new TypeError(_0x3633e7(0x144));}function _defineProperties(_0x1cb0a1,_0xc06e46){var _0x8d6de0=_0x4cc5;for(var _0xa4661b=0x0;_0xa4661b<_0xc06e46['length'];_0xa4661b++){var _0x6d436b=_0xc06e46[_0xa4661b];_0x6d436b['enumerable']=_0x6d436b[_0x8d6de0(0x187)]||![],_0x6d436b[_0x8d6de0(0x11f)]=!![];if(_0x8d6de0(0x166)in _0x6d436b)_0x6d436b[_0x8d6de0(0x136)]=!![];Object['defineProperty'](_0x1cb0a1,_0x6d436b[_0x8d6de0(0x171)],_0x6d436b);}}function _createClass(_0x1ceeca,_0x362d80,_0x34c265){var _0x43272d=_0x4cc5;if(_0x362d80)_defineProperties(_0x1ceeca['prototype'],_0x362d80);if(_0x34c265)_defineProperties(_0x1ceeca,_0x34c265);return Object['defineProperty'](_0x1ceeca,_0x43272d(0x12b),{'writable':![]}),_0x1ceeca;}function _defineProperty(_0x431ab7,_0xe7b498,_0x10157f){return _0xe7b498 in _0x431ab7?Object['defineProperty'](_0x431ab7,_0xe7b498,{'value':_0x10157f,'enumerable':!![],'configurable':!![],'writable':!![]}):_0x431ab7[_0xe7b498]=_0x10157f,_0x431ab7;}function _inherits(_0x1c267f,_0x324784){var _0x3f35dc=_0x4cc5;if(typeof _0x324784!=='function'&&_0x324784!==null)throw new TypeError(_0x3f35dc(0xce));_0x1c267f['prototype']=Object['create'](_0x324784&&_0x324784[_0x3f35dc(0x12b)],{'constructor':{'value':_0x1c267f,'writable':!![],'configurable':!![]}}),Object['defineProperty'](_0x1c267f,_0x3f35dc(0x12b),{'writable':![]});if(_0x324784)_setPrototypeOf(_0x1c267f,_0x324784);}function _getPrototypeOf(_0x464db6){return _getPrototypeOf=Object['setPrototypeOf']?Object['getPrototypeOf']['bind']():function _0x4b2d46(_0x141701){var _0x129757=_0x4cc5;return _0x141701[_0x129757(0x106)]||Object['getPrototypeOf'](_0x141701);},_getPrototypeOf(_0x464db6);}function _setPrototypeOf(_0xb12050,_0x9979c3){return _setPrototypeOf=Object['setPrototypeOf']?Object['setPrototypeOf']['bind']():function _0x51e506(_0x184f25,_0x4ea7ec){return _0x184f25['__proto__']=_0x4ea7ec,_0x184f25;},_setPrototypeOf(_0xb12050,_0x9979c3);}function _isNativeReflectConstruct(){var _0xc5dfec=_0x4cc5;if(typeof Reflect==='undefined'||!Reflect[_0xc5dfec(0x141)])return![];if(Reflect[_0xc5dfec(0x141)]['sham'])return![];if(typeof Proxy==='function')return!![];try{return Boolean['prototype']['valueOf']['call'](Reflect['construct'](Boolean,[],function(){})),!![];}catch(_0x44f161){return![];}}function _assertThisInitialized(_0x3b694c){if(_0x3b694c===void 0x0)throw new ReferenceError('this\x20hasn\x27t\x20been\x20initialised\x20-\x20super()\x20hasn\x27t\x20been\x20called');return _0x3b694c;}function _possibleConstructorReturn(_0x1fb47b,_0xe8ac2d){var _0x2444c8=_0x4cc5;if(_0xe8ac2d&&(typeof _0xe8ac2d===_0x2444c8(0x1a9)||typeof _0xe8ac2d==='function'))return _0xe8ac2d;else{if(_0xe8ac2d!==void 0x0)throw new TypeError('Derived\x20constructors\x20may\x20only\x20return\x20object\x20or\x20undefined');}return _assertThisInitialized(_0x1fb47b);}function _createSuper(_0xa00a44){var _0x18318e=_isNativeReflectConstruct();return function _0x23b92f(){var _0x47017b=_0x4cc5,_0x22b59a=_getPrototypeOf(_0xa00a44),_0x1564ba;if(_0x18318e){var _0x1790e1=_getPrototypeOf(this)[_0x47017b(0x150)];_0x1564ba=Reflect['construct'](_0x22b59a,arguments,_0x1790e1);}else _0x1564ba=_0x22b59a['apply'](this,arguments);return _possibleConstructorReturn(this,_0x1564ba);};}function _toConsumableArray(_0x2de4a4){return _arrayWithoutHoles(_0x2de4a4)||_iterableToArray(_0x2de4a4)||_unsupportedIterableToArray(_0x2de4a4)||_nonIterableSpread();}function _arrayWithoutHoles(_0x28938f){var _0x33a1f3=_0x4cc5;if(Array[_0x33a1f3(0x13c)](_0x28938f))return _arrayLikeToArray(_0x28938f);}function _iterableToArray(_0x1c163c){var _0x9e0847=_0x4cc5;if(typeof Symbol!=='undefined'&&_0x1c163c[Symbol['iterator']]!=null||_0x1c163c['@@iterator']!=null)return Array[_0x9e0847(0x154)](_0x1c163c);}function _unsupportedIterableToArray(_0x159df7,_0x55f047){var _0x489cf9=_0x4cc5;if(!_0x159df7)return;if(typeof _0x159df7===_0x489cf9(0x153))return _arrayLikeToArray(_0x159df7,_0x55f047);var _0x3e6a93=Object['prototype']['toString']['call'](_0x159df7)[_0x489cf9(0x147)](0x8,-0x1);if(_0x3e6a93===_0x489cf9(0xf9)&&_0x159df7['constructor'])_0x3e6a93=_0x159df7['constructor']['name'];if(_0x3e6a93==='Map'||_0x3e6a93===_0x489cf9(0x172))return Array['from'](_0x159df7);if(_0x3e6a93==='Arguments'||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/[_0x489cf9(0x184)](_0x3e6a93))return _arrayLikeToArray(_0x159df7,_0x55f047);}function _arrayLikeToArray(_0x28c2f8,_0x2543df){if(_0x2543df==null||_0x2543df>_0x28c2f8['length'])_0x2543df=_0x28c2f8['length'];for(var _0x2ea78e=0x0,_0x5c5713=new Array(_0x2543df);_0x2ea78e<_0x2543df;_0x2ea78e++)_0x5c5713[_0x2ea78e]=_0x28c2f8[_0x2ea78e];return _0x5c5713;}function _nonIterableSpread(){throw new TypeError('Invalid\x20attempt\x20to\x20spread\x20non-iterable\x20instance.\x0aIn\x20order\x20to\x20be\x20iterable,\x20non-array\x20objects\x20must\x20have\x20a\x20[Symbol.iterator]()\x20method.');}var Cesium$6=mars3d__namespace['Cesium'],CustomPrimitive=(function(){var _0x4a405c=_0x4cc5;function _0xb18d06(_0x2d0398){var _0x332626=_0x4cc5,_0x57e0ee;_classCallCheck(this,_0xb18d06),this['commandType']=_0x2d0398['commandType'],this['geometry']=_0x2d0398['geometry'],this['attributeLocations']=_0x2d0398['attributeLocations'],this['primitiveType']=_0x2d0398[_0x332626(0x139)],this['uniformMap']=_0x2d0398['uniformMap'],this['vertexShaderSource']=_0x2d0398['vertexShaderSource'],this['fragmentShaderSource']=_0x2d0398['fragmentShaderSource'],this[_0x332626(0x105)]=_0x2d0398['rawRenderState'],this[_0x332626(0xe4)]=_0x2d0398['framebuffer'],this['outputTexture']=_0x2d0398['outputTexture'],this['autoClear']=(_0x57e0ee=_0x2d0398['autoClear'])!==null&&_0x57e0ee!==void 0x0?_0x57e0ee:![],this['preExecute']=_0x2d0398['preExecute'],this[_0x332626(0x183)]=!![],this['commandToExecute']=undefined,this['clearCommand']=undefined,this[_0x332626(0x1b8)]&&(this[_0x332626(0x143)]=new Cesium$6['ClearCommand']({'color':new Cesium$6['Color'](0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this['framebuffer'],'pass':Cesium$6['Pass'][_0x332626(0x198)]}));}return _createClass(_0xb18d06,[{'key':_0x4a405c(0xcb),'value':function _0x59dfa3(_0x54f9c2){var _0x1484a1=_0x4a405c;switch(this[_0x1484a1(0xd6)]){case'Draw':{var _0x2a00a5=Cesium$6['VertexArray'][_0x1484a1(0x19c)]({'context':_0x54f9c2,'geometry':this['geometry'],'attributeLocations':this['attributeLocations'],'bufferUsage':Cesium$6['BufferUsage']['STATIC_DRAW']}),_0x476074=Cesium$6[_0x1484a1(0x192)]['fromCache']({'context':_0x54f9c2,'attributeLocations':this[_0x1484a1(0x189)],'vertexShaderSource':this['vertexShaderSource'],'fragmentShaderSource':this['fragmentShaderSource']}),_0x5d9f00=Cesium$6[_0x1484a1(0x18f)]['fromCache'](this['rawRenderState']);return new Cesium$6['DrawCommand']({'primitiveType':this['primitiveType'],'shaderProgram':_0x476074,'vertexArray':_0x2a00a5,'modelMatrix':Cesium$6['Matrix4'][_0x1484a1(0x17c)],'renderState':_0x5d9f00,'uniformMap':this['uniformMap'],'castShadows':![],'receiveShadows':![],'framebuffer':this[_0x1484a1(0xe4)],'pass':Cesium$6['Pass'][_0x1484a1(0x198)],'pickOnly':!![],'owner':this});}case'Compute':{return new Cesium$6['ComputeCommand']({'owner':this,'fragmentShaderSource':this['fragmentShaderSource'],'uniformMap':this['uniformMap'],'outputTexture':this['outputTexture'],'persists':!![]});}}}},{'key':'setGeometry','value':function _0x4cb396(_0x1457ac,_0x478151){var _0x5322a9=_0x4a405c;this[_0x5322a9(0x191)]=_0x478151;var _0x267fa9=Cesium$6['VertexArray']['fromGeometry']({'context':_0x1457ac,'geometry':this['geometry'],'attributeLocations':this[_0x5322a9(0x189)],'bufferUsage':Cesium$6[_0x5322a9(0x156)]['STATIC_DRAW']});this['commandToExecute'][_0x5322a9(0x142)]=_0x267fa9;}},{'key':'update','value':function _0x5b62ca(_0x48cc69){var _0x32adc3=_0x4a405c;if(!this['show'])return;if(_0x48cc69['mode']!==Cesium$6['SceneMode'][_0x32adc3(0xcc)])return;!Cesium$6['defined'](this[_0x32adc3(0x1bd)])&&(this['commandToExecute']=this[_0x32adc3(0xcb)](_0x48cc69['context'])),Cesium$6[_0x32adc3(0xe1)](this[_0x32adc3(0x197)])&&this['preExecute'](),Cesium$6[_0x32adc3(0xe1)](this[_0x32adc3(0x143)])&&_0x48cc69['commandList']['push'](this['clearCommand']),_0x48cc69[_0x32adc3(0xde)]['push'](this[_0x32adc3(0x1bd)]);}},{'key':'isDestroyed','value':function _0x5e9392(){return![];}},{'key':'destroy','value':function _0x14c16c(){var _0x12bebb=_0x4a405c;if(this['clearCommand']){var _0x5b97cf,_0x12a3b7;(_0x5b97cf=this[_0x12bebb(0x143)])!==null&&_0x5b97cf!==void 0x0&&_0x5b97cf[_0x12bebb(0x142)]&&this['clearCommand']['vertexArray']['destroy'](),(_0x12a3b7=this['clearCommand'])!==null&&_0x12a3b7!==void 0x0&&_0x12a3b7['shaderProgram']&&this['clearCommand']['shaderProgram']['destroy'](),delete this['clearCommand'];}return this['commandToExecute']&&(this['commandToExecute'][_0x12bebb(0x142)]&&this['commandToExecute']['vertexArray'][_0x12bebb(0x1a3)](),this[_0x12bebb(0x1bd)]['shaderProgram']&&this[_0x12bebb(0x1bd)]['shaderProgram']['destroy'](),delete this['commandToExecute']),Cesium$6[_0x12bebb(0x1b4)](this);}}]),_0xb18d06;}()),Cesium$5=mars3d__namespace[_0x5a162f(0xdd)],Util=(function(){var _0x407f3c=function _0x4a68c9(){var _0x5e280f=_0x4cc5,_0x174e23=new Cesium$5['Geometry']({'attributes':new Cesium$5['GeometryAttributes']({'position':new Cesium$5['GeometryAttribute']({'componentDatatype':Cesium$5['ComponentDatatype']['FLOAT'],'componentsPerAttribute':0x3,'values':new Float32Array([-0x1,-0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0,-0x1,0x1,0x0])}),'st':new Cesium$5[(_0x5e280f(0x193))]({'componentDatatype':Cesium$5['ComponentDatatype']['FLOAT'],'componentsPerAttribute':0x2,'values':new Float32Array([0x0,0x0,0x1,0x0,0x1,0x1,0x0,0x1])})}),'indices':new Uint32Array([0x3,0x2,0x0,0x0,0x2,0x1])});return _0x174e23;},_0x5f3331=function _0x1cb3aa(_0x377452,_0x20dcdc){if(Cesium$5['defined'](_0x20dcdc)){var _0x10e322={};_0x10e322['arrayBufferView']=_0x20dcdc,_0x377452['source']=_0x10e322;}var _0x28785b=new Cesium$5['Texture'](_0x377452);return _0x28785b;},_0x1ff3f8=function _0xd15525(_0x25c070,_0x111771,_0x267ea0){var _0x55caa2=_0x4cc5,_0x550772=new Cesium$5[(_0x55caa2(0x1bc))]({'context':_0x25c070,'colorTextures':[_0x111771],'depthTexture':_0x267ea0});return _0x550772;},_0x2248ee=function _0x4e15b2(_0x4b31d4){var _0x54a016=_0x4cc5,_0x2d2416=!![],_0x3485a9=![],_0x5b4624={'viewport':_0x4b31d4['viewport'],'depthTest':_0x4b31d4[_0x54a016(0xc5)],'depthMask':_0x4b31d4['depthMask'],'blending':_0x4b31d4['blending']},_0xaa4e09=Cesium$5['Appearance']['getDefaultRenderState'](_0x2d2416,_0x3485a9,_0x5b4624);return _0xaa4e09;},_0x2bedf8=function _0x398394(_0x2a3fce){var _0x1a0765=_0x4cc5,_0x17b05d={},_0x37fe44=Cesium$5['Math'][_0x1a0765(0x137)](_0x2a3fce[_0x1a0765(0x13d)],Cesium$5['Math']['TWO_PI']),_0x3612a0=Cesium$5['Math']['mod'](_0x2a3fce['east'],Cesium$5['Math'][_0x1a0765(0x109)]),_0x688bce=_0x2a3fce['width'],_0x1e0259,_0x448cf;_0x688bce>Cesium$5['Math']['THREE_PI_OVER_TWO']?(_0x1e0259=0x0,_0x448cf=Cesium$5[_0x1a0765(0x10e)]['TWO_PI']):_0x3612a0-_0x37fe44<_0x688bce?(_0x1e0259=_0x37fe44,_0x448cf=_0x37fe44+_0x688bce):(_0x1e0259=_0x37fe44,_0x448cf=_0x3612a0);_0x17b05d['lon']={'min':Cesium$5['Math'][_0x1a0765(0xcf)](_0x1e0259),'max':Cesium$5['Math']['toDegrees'](_0x448cf)};var _0x3d11b0=_0x2a3fce['south'],_0x5d54be=_0x2a3fce['north'],_0xaaac5d=_0x2a3fce[_0x1a0765(0x151)],_0x5f39d9=_0xaaac5d>Cesium$5['Math']['PI']/0xc?_0xaaac5d/0x2:0x0,_0x4061d8=Cesium$5['Math']['clampToLatitudeRange'](_0x3d11b0-_0x5f39d9),_0x2210ae=Cesium$5['Math']['clampToLatitudeRange'](_0x5d54be+_0x5f39d9);return _0x4061d8<-Cesium$5[_0x1a0765(0x10e)][_0x1a0765(0x103)]&&(_0x4061d8=-Cesium$5['Math']['PI_OVER_TWO']),_0x2210ae>Cesium$5['Math'][_0x1a0765(0x103)]&&(_0x2210ae=Cesium$5[_0x1a0765(0x10e)][_0x1a0765(0x13e)]),_0x17b05d[_0x1a0765(0x13a)]={'min':Cesium$5['Math'][_0x1a0765(0xcf)](_0x4061d8),'max':Cesium$5['Math'][_0x1a0765(0xcf)](_0x2210ae)},_0x17b05d;};return{'getFullscreenQuad':_0x407f3c,'createTexture':_0x5f3331,'createFramebuffer':_0x1ff3f8,'createRawRenderState':_0x2248ee,'viewRectangleToLonLatRange':_0x2bedf8};}()),segmentDraw_vert='attribute\x20vec2\x20st;\x0a//\x20it\x20is\x20not\x20normal\x20itself,\x20but\x20used\x20to\x20control\x20normal\x0aattribute\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\x0avarying\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\x20\x0a\x20\x20\x20\x20float\x20a\x20=\x206378137.0;\x20//\x20Semi-major\x20axis\x20\x0a\x20\x20\x20\x20float\x20b\x20=\x206356752.3142;\x20//\x20Semi-minor\x20axis\x20\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=\x20texture2D(currentParticlesPosition,\x20particleIndex).rgb;\x0a\x20\x20\x20\x20vec4\x20nextPosition\x20=\x20texture2D(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=\x20texture2D(postProcessingSpeed,\x20particleIndex).a;\x0a}',segmentDraw_frag='uniform\x20sampler2D\x20colorTable;\x0a\x0avarying\x20float\x20speedNormalization;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20gl_FragColor\x20=\x20texture2D(colorTable,\x20vec2(speedNormalization,\x200.0));\x0a}',fullscreen_vert='attribute\x20vec3\x20position;\x0d\x0aattribute\x20vec2\x20st;\x0d\x0a\x0d\x0avarying\x20vec2\x20textureCoordinate;\x0d\x0a\x0d\x0avoid\x20main()\x20{\x0d\x0a\x20\x20\x20\x20textureCoordinate\x20=\x20st;\x0d\x0a\x20\x20\x20\x20gl_Position\x20=\x20vec4(position,\x201.0);\x0d\x0a}',trailDraw_frag=_0x5a162f(0x11c),screenDraw_frag='uniform\x20sampler2D\x20trailsColorTexture;\x0d\x0auniform\x20sampler2D\x20trailsDepthTexture;\x0d\x0a\x0d\x0avarying\x20vec2\x20textureCoordinate;\x0d\x0a\x0d\x0avoid\x20main()\x20{\x0d\x0a\x20\x20\x20\x20vec4\x20trailsColor\x20=\x20texture2D(trailsColorTexture,\x20textureCoordinate);\x0d\x0a\x20\x20\x20\x20float\x20trailsDepth\x20=\x20texture2D(trailsDepthTexture,\x20textureCoordinate).r;\x0d\x0a\x20\x20\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture2D(czm_globeDepthTexture,\x20textureCoordinate));\x0d\x0a\x0d\x0a\x20\x20\x20\x20if\x20(trailsDepth\x20<\x20globeDepth)\x20{\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20trailsColor;\x0d\x0a\x20\x20\x20\x20}\x20else\x20{\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20vec4(0.0);\x0d\x0a\x20\x20\x20\x20}\x0d\x0a}',Cesium$4=mars3d__namespace['Cesium'],ParticlesRendering=(function(){var _0x47c98b=_0x5a162f;function _0x151d7b(_0x186d56,_0x1a792e,_0x163a0a,_0x27037b,_0x36c4e5){var _0x2becd8=_0x4cc5;_classCallCheck(this,_0x151d7b),this['createRenderingTextures'](_0x186d56,_0x1a792e,_0x163a0a['colors']),this[_0x2becd8(0x175)](_0x186d56),this['createRenderingPrimitives'](_0x186d56,_0x163a0a,_0x27037b,_0x36c4e5);}return _createClass(_0x151d7b,[{'key':'createRenderingTextures','value':function _0x148f45(_0x53fe66,_0x4b8c50,_0x8b2f9a){var _0x673dea=_0x4cc5,_0x2361cc={'context':_0x53fe66,'width':_0x53fe66[_0x673dea(0x1ae)],'height':_0x53fe66['drawingBufferHeight'],'pixelFormat':Cesium$4[_0x673dea(0x17a)]['RGBA'],'pixelDatatype':Cesium$4['PixelDatatype'][_0x673dea(0x16b)]},_0x32a9ec={'context':_0x53fe66,'width':_0x53fe66['drawingBufferWidth'],'height':_0x53fe66['drawingBufferHeight'],'pixelFormat':Cesium$4['PixelFormat'][_0x673dea(0x18e)],'pixelDatatype':Cesium$4['PixelDatatype']['UNSIGNED_INT']},_0x40ef0d=_0x8b2f9a[_0x673dea(0x130)],_0x1981e9=new Float32Array(_0x40ef0d*0x3);for(var _0x22c87a=0x0;_0x22c87a<_0x40ef0d;_0x22c87a++){var _0x5e22cd=Cesium$4['Color']['fromCssColorString'](_0x8b2f9a[_0x22c87a]);_0x1981e9[0x3*_0x22c87a]=_0x5e22cd[_0x673dea(0xdf)],_0x1981e9[0x3*_0x22c87a+0x1]=_0x5e22cd['green'],_0x1981e9[0x3*_0x22c87a+0x2]=_0x5e22cd['blue'];}var _0x43292e={'context':_0x53fe66,'width':_0x40ef0d,'height':0x1,'pixelFormat':Cesium$4[_0x673dea(0x17a)][_0x673dea(0x11e)],'pixelDatatype':Cesium$4['PixelDatatype']['FLOAT'],'sampler':new Cesium$4[(_0x673dea(0x131))]({'minificationFilter':Cesium$4['TextureMinificationFilter'][_0x673dea(0x1b1)],'magnificationFilter':Cesium$4['TextureMagnificationFilter']['LINEAR']})};this['textures']={'segmentsColor':Util['createTexture'](_0x2361cc),'segmentsDepth':Util['createTexture'](_0x32a9ec),'currentTrailsColor':Util['createTexture'](_0x2361cc),'currentTrailsDepth':Util[_0x673dea(0xd7)](_0x32a9ec),'nextTrailsColor':Util['createTexture'](_0x2361cc),'nextTrailsDepth':Util['createTexture'](_0x32a9ec),'colorTable':Util[_0x673dea(0xd7)](_0x43292e,_0x1981e9)};}},{'key':'createRenderingFramebuffers','value':function _0x1e26a7(_0x26990c){var _0x59a67a=_0x4cc5;this['framebuffers']={'segments':Util[_0x59a67a(0x19b)](_0x26990c,this[_0x59a67a(0x125)]['segmentsColor'],this['textures'][_0x59a67a(0x140)]),'currentTrails':Util['createFramebuffer'](_0x26990c,this[_0x59a67a(0x125)][_0x59a67a(0xc3)],this['textures']['currentTrailsDepth']),'nextTrails':Util['createFramebuffer'](_0x26990c,this['textures']['nextTrailsColor'],this['textures'][_0x59a67a(0x160)])};}},{'key':_0x47c98b(0xf5),'value':function _0x31552d(_0x2eb26f){var _0x8ccd84=_0x47c98b,_0x5866de=0x4,_0x4b25c1=[];for(var _0x536333=0x0;_0x536333<_0x2eb26f['particlesTextureSize'];_0x536333++){for(var _0x2ab7f0=0x0;_0x2ab7f0<_0x2eb26f['particlesTextureSize'];_0x2ab7f0++){for(var _0x1db4b4=0x0;_0x1db4b4<_0x5866de;_0x1db4b4++){_0x4b25c1['push'](_0x536333/_0x2eb26f['particlesTextureSize']),_0x4b25c1['push'](_0x2ab7f0/_0x2eb26f['particlesTextureSize']);}}}_0x4b25c1=new Float32Array(_0x4b25c1);var _0x3fcf17=[],_0x5708fb=[-0x1,0x1],_0x67fe86=[-0x1,0x1];for(var _0x165068=0x0;_0x165068<_0x2eb26f['maxParticles'];_0x165068++){for(var _0x51379f=0x0;_0x51379f<_0x5866de/0x2;_0x51379f++){for(var _0x316366=0x0;_0x316366<_0x5866de/0x2;_0x316366++){_0x3fcf17['push'](_0x5708fb[_0x51379f]),_0x3fcf17['push'](_0x67fe86[_0x316366]),_0x3fcf17['push'](0x0);}}}_0x3fcf17=new Float32Array(_0x3fcf17);var _0xcd095d=0x6*_0x2eb26f['maxParticles'],_0x88093c=new Uint32Array(_0xcd095d);for(var _0x32ec2a=0x0,_0x162ed1=0x0,_0x2529d0=0x0;_0x32ec2a<_0x2eb26f[_0x8ccd84(0x177)];_0x32ec2a++){_0x88093c[_0x162ed1++]=_0x2529d0+0x0,_0x88093c[_0x162ed1++]=_0x2529d0+0x1,_0x88093c[_0x162ed1++]=_0x2529d0+0x2,_0x88093c[_0x162ed1++]=_0x2529d0+0x2,_0x88093c[_0x162ed1++]=_0x2529d0+0x1,_0x88093c[_0x162ed1++]=_0x2529d0+0x3,_0x2529d0+=0x4;}var _0x2c91d6=new Cesium$4[(_0x8ccd84(0x14d))]({'attributes':new Cesium$4['GeometryAttributes']({'st':new Cesium$4['GeometryAttribute']({'componentDatatype':Cesium$4['ComponentDatatype'][_0x8ccd84(0xd4)],'componentsPerAttribute':0x2,'values':_0x4b25c1}),'normal':new Cesium$4[(_0x8ccd84(0x193))]({'componentDatatype':Cesium$4['ComponentDatatype'][_0x8ccd84(0xd4)],'componentsPerAttribute':0x3,'values':_0x3fcf17})}),'indices':_0x88093c});return _0x2c91d6;}},{'key':'createRenderingPrimitives','value':function _0x283dd7(_0x2008fc,_0x441303,_0x38522e,_0x102fd3){var _0x489d16=_0x47c98b,_0x3843d1=this;this['primitives']={'segments':new CustomPrimitive({'commandType':'Draw','attributeLocations':{'st':0x0,'normal':0x1},'geometry':this[_0x489d16(0xf5)](_0x441303),'primitiveType':Cesium$4['PrimitiveType']['TRIANGLES'],'uniformMap':{'currentParticlesPosition':function _0x45920a(){return _0x102fd3['particlesTextures']['currentParticlesPosition'];},'postProcessingPosition':function _0x142621(){var _0x6db190=_0x489d16;return _0x102fd3[_0x6db190(0x181)]['postProcessingPosition'];},'postProcessingSpeed':function _0x4d328b(){return _0x102fd3['particlesTextures']['postProcessingSpeed'];},'colorTable':function _0x1930c9(){return _0x3843d1['textures']['colorTable'];},'aspect':function _0x52a068(){return _0x2008fc['drawingBufferWidth']/_0x2008fc['drawingBufferHeight'];},'pixelSize':function _0x48e316(){return _0x38522e['pixelSize'];},'lineWidth':function _0x2de6ec(){var _0xe9cf43=_0x489d16;return _0x441303[_0xe9cf43(0x111)];},'particleHeight':function _0x491803(){return _0x441303['particleHeight'];}},'vertexShaderSource':new Cesium$4[(_0x489d16(0x14b))]({'sources':[segmentDraw_vert]}),'fragmentShaderSource':new Cesium$4['ShaderSource']({'sources':[segmentDraw_frag]}),'rawRenderState':Util['createRawRenderState']({'viewport':undefined,'depthTest':{'enabled':!![]},'depthMask':!![]}),'framebuffer':this['framebuffers'][_0x489d16(0x1ac)],'autoClear':!![]}),'trails':new CustomPrimitive({'commandType':_0x489d16(0x186),'attributeLocations':{'position':0x0,'st':0x1},'geometry':Util['getFullscreenQuad'](),'primitiveType':Cesium$4['PrimitiveType']['TRIANGLES'],'uniformMap':{'segmentsColorTexture':function _0x3bd622(){var _0x21205d=_0x489d16;return _0x3843d1[_0x21205d(0x125)]['segmentsColor'];},'segmentsDepthTexture':function _0x5e5c7b(){return _0x3843d1['textures']['segmentsDepth'];},'currentTrailsColor':function _0x906426(){var _0x417aaf=_0x489d16;return _0x3843d1[_0x417aaf(0x119)]['currentTrails'][_0x417aaf(0x168)](0x0);},'trailsDepthTexture':function _0x391b71(){var _0xf79d85=_0x489d16;return _0x3843d1[_0xf79d85(0x119)][_0xf79d85(0xef)]['depthTexture'];},'fadeOpacity':function _0x5687f1(){return _0x441303['fadeOpacity'];}},'vertexShaderSource':new Cesium$4[(_0x489d16(0x14b))]({'defines':['DISABLE_GL_POSITION_LOG_DEPTH'],'sources':[fullscreen_vert]}),'fragmentShaderSource':new Cesium$4[(_0x489d16(0x14b))]({'defines':['DISABLE_LOG_DEPTH_FRAGMENT_WRITE'],'sources':[trailDraw_frag]}),'rawRenderState':Util['createRawRenderState']({'viewport':undefined,'depthTest':{'enabled':!![],'func':Cesium$4['DepthFunction']['ALWAYS']},'depthMask':!![]}),'framebuffer':this['framebuffers']['nextTrails'],'autoClear':!![],'preExecute':function _0x3e999e(){var _0x5b8bf6=_0x489d16,_0x36016c=_0x3843d1['framebuffers']['currentTrails'];_0x3843d1['framebuffers']['currentTrails']=_0x3843d1['framebuffers']['nextTrails'],_0x3843d1['framebuffers']['nextTrails']=_0x36016c,_0x3843d1['primitives']['trails']['commandToExecute']['framebuffer']=_0x3843d1['framebuffers']['nextTrails'],_0x3843d1[_0x5b8bf6(0xcd)]['trails'][_0x5b8bf6(0x143)][_0x5b8bf6(0xe4)]=_0x3843d1[_0x5b8bf6(0x119)]['nextTrails'];}}),'screen':new CustomPrimitive({'commandType':'Draw','attributeLocations':{'position':0x0,'st':0x1},'geometry':Util[_0x489d16(0x114)](),'primitiveType':Cesium$4[_0x489d16(0xc1)]['TRIANGLES'],'uniformMap':{'trailsColorTexture':function _0x25abc2(){return _0x3843d1['framebuffers']['nextTrails']['getColorTexture'](0x0);},'trailsDepthTexture':function _0x1b21ee(){return _0x3843d1['framebuffers']['nextTrails']['depthTexture'];}},'vertexShaderSource':new Cesium$4[(_0x489d16(0x14b))]({'defines':['DISABLE_GL_POSITION_LOG_DEPTH'],'sources':[fullscreen_vert]}),'fragmentShaderSource':new Cesium$4['ShaderSource']({'defines':['DISABLE_LOG_DEPTH_FRAGMENT_WRITE'],'sources':[screenDraw_frag]}),'rawRenderState':Util[_0x489d16(0x173)]({'viewport':undefined,'depthTest':{'enabled':![]},'depthMask':!![],'blending':{'enabled':!![]}}),'framebuffer':undefined})};}}]),_0x151d7b;}()),getWind_frag='//\x20the\x20size\x20of\x20UV\x20textures:\x20width\x20=\x20lon,\x20height\x20=\x20lat*lev\x0auniform\x20sampler2D\x20U;\x20//\x20eastward\x20wind\x20\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\x0avarying\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=\x20texture2D(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=\x20texture2D(currentParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec3\x20windVector\x20=\x20bicubic(lonLatLev);\x0a\x20\x20\x20\x20gl_FragColor\x20=\x20vec4(windVector,\x200.0);\x0a}',updateSpeed_frag=_0x5a162f(0xee),updatePosition_frag='uniform\x20sampler2D\x20currentParticlesPosition;\x20//\x20(lon,\x20lat,\x20lev)\x0auniform\x20sampler2D\x20currentParticlesSpeed;\x20//\x20(u,\x20v,\x20w,\x20normalization)\x0a\x0avarying\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\x20gl_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=\x20texture2D(currentParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec3\x20speed\x20=\x20texture2D(currentParticlesSpeed,\x20v_textureCoordinates).rgb;\x0a\x0a\x20\x20\x20\x20updatePosition(lonLatLev,\x20speed);\x0a}',postProcessingPosition_frag=_0x5a162f(0x134),postProcessingSpeed_frag=_0x5a162f(0xf7),Cesium$3=mars3d__namespace['Cesium'],ParticlesComputing=(function(){function _0x50810a(_0x2d03c7,_0x1b32af,_0x2f1c4f,_0x30dbd5){_classCallCheck(this,_0x50810a),this['data']=_0x1b32af,this['createWindTextures'](_0x2d03c7,_0x1b32af),this['createParticlesTextures'](_0x2d03c7,_0x2f1c4f,_0x30dbd5),this['createComputingPrimitives'](_0x1b32af,_0x2f1c4f,_0x30dbd5);}return _createClass(_0x50810a,[{'key':'createWindTextures','value':function _0xddb97a(_0x1c6ba6,_0x5cd10d){var _0x1bf512=_0x4cc5,_0x276f5c={'context':_0x1c6ba6,'width':_0x5cd10d[_0x1bf512(0xff)]['lon'],'height':_0x5cd10d['dimensions'][_0x1bf512(0x13a)]*(_0x5cd10d['dimensions']['lev']||0x1),'pixelFormat':Cesium$3[_0x1bf512(0x17a)]['LUMINANCE'],'pixelDatatype':Cesium$3['PixelDatatype']['FLOAT'],'flipY':![],'sampler':new Cesium$3['Sampler']({'minificationFilter':Cesium$3['TextureMinificationFilter']['NEAREST'],'magnificationFilter':Cesium$3['TextureMagnificationFilter']['NEAREST']})};this['windTextures']={'U':Util['createTexture'](_0x276f5c,_0x5cd10d['U']['array']),'V':Util[_0x1bf512(0xd7)](_0x276f5c,_0x5cd10d['V']['array'])};}},{'key':'createParticlesTextures','value':function _0x2054c2(_0x3d9751,_0x2f4c58,_0x4a86cc){var _0x1fc907=_0x4cc5,_0x4c9366={'context':_0x3d9751,'width':_0x2f4c58['particlesTextureSize'],'height':_0x2f4c58['particlesTextureSize'],'pixelFormat':Cesium$3['PixelFormat'][_0x1fc907(0x11b)],'pixelDatatype':Cesium$3['PixelDatatype'][_0x1fc907(0xd4)],'flipY':![],'sampler':new Cesium$3[(_0x1fc907(0x131))]({'minificationFilter':Cesium$3['TextureMinificationFilter']['NEAREST'],'magnificationFilter':Cesium$3['TextureMagnificationFilter'][_0x1fc907(0x1a4)]})},_0x3834b5=this['randomizeParticles'](_0x2f4c58['maxParticles'],_0x4a86cc),_0x1ea31a=new Float32Array(0x4*_0x2f4c58['maxParticles'])[_0x1fc907(0xc7)](0x0);this[_0x1fc907(0x181)]={'particlesWind':Util['createTexture'](_0x4c9366),'currentParticlesPosition':Util['createTexture'](_0x4c9366,_0x3834b5),'nextParticlesPosition':Util['createTexture'](_0x4c9366,_0x3834b5),'currentParticlesSpeed':Util['createTexture'](_0x4c9366,_0x1ea31a),'nextParticlesSpeed':Util['createTexture'](_0x4c9366,_0x1ea31a),'postProcessingPosition':Util['createTexture'](_0x4c9366,_0x3834b5),'postProcessingSpeed':Util[_0x1fc907(0xd7)](_0x4c9366,_0x1ea31a)};}},{'key':'randomizeParticles','value':function _0x483784(_0x1f6e18,_0x2ba23e){var _0xd35d1=_0x4cc5,_0x3ab646=new Float32Array(0x4*_0x1f6e18);for(var _0x26defb=0x0;_0x26defb<_0x1f6e18;_0x26defb++){_0x3ab646[0x4*_0x26defb]=Cesium$3['Math']['randomBetween'](_0x2ba23e[_0xd35d1(0xc8)]['x'],_0x2ba23e['lonRange']['y']),_0x3ab646[0x4*_0x26defb+0x1]=Cesium$3['Math']['randomBetween'](_0x2ba23e['latRange']['x'],_0x2ba23e['latRange']['y']),_0x3ab646[0x4*_0x26defb+0x2]=Cesium$3['Math']['randomBetween'](this['data']['lev']['min'],this['data'][_0xd35d1(0xfc)][_0xd35d1(0x14a)]),_0x3ab646[0x4*_0x26defb+0x3]=0x0;}return _0x3ab646;}},{'key':'destroyParticlesTextures','value':function _0x3e7e7c(){var _0x988f20=_0x4cc5,_0x14c438=this;Object['keys'](this[_0x988f20(0x181)])['forEach'](function(_0x5ece94){_0x14c438['particlesTextures'][_0x5ece94]['destroy']();});}},{'key':'createComputingPrimitives','value':function _0x242bad(_0x440703,_0x50ca58,_0x4a1f47){var _0x455b96=_0x4cc5,_0x27f51c=new Cesium$3[(_0x455b96(0xe8))](_0x440703['dimensions'][_0x455b96(0x10d)],_0x440703['dimensions']['lat'],_0x440703['dimensions']['lev']),_0x2dcacb=new Cesium$3[(_0x455b96(0xe8))](_0x440703[_0x455b96(0x10d)]['min'],_0x440703[_0x455b96(0x13a)][_0x455b96(0xf6)],_0x440703['lev'][_0x455b96(0xf6)]),_0x4114a5=new Cesium$3['Cartesian3'](_0x440703['lon']['max'],_0x440703[_0x455b96(0x13a)]['max'],_0x440703['lev'][_0x455b96(0x14a)]),_0x40ba73=new Cesium$3['Cartesian3']((_0x4114a5['x']-_0x2dcacb['x'])/(_0x27f51c['x']-0x1),(_0x4114a5['y']-_0x2dcacb['y'])/(_0x27f51c['y']-0x1),_0x27f51c['z']>0x1?(_0x4114a5['z']-_0x2dcacb['z'])/(_0x27f51c['z']-0x1):0x1),_0x199136=new Cesium$3[(_0x455b96(0x163))](_0x440703['U']['min'],_0x440703['U'][_0x455b96(0x14a)]),_0x251d3c=new Cesium$3[(_0x455b96(0x163))](_0x440703['V']['min'],_0x440703['V']['max']),_0x2a3d7e=this;this['primitives']={'getWind':new CustomPrimitive({'commandType':'Compute','uniformMap':{'U':function _0x215d55(){var _0x1e9c64=_0x455b96;return _0x2a3d7e[_0x1e9c64(0x185)]['U'];},'V':function _0x3f9904(){return _0x2a3d7e['windTextures']['V'];},'currentParticlesPosition':function _0x4cb3c9(){var _0x27374b=_0x455b96;return _0x2a3d7e['particlesTextures'][_0x27374b(0x149)];},'dimension':function _0x11f29a(){return _0x27f51c;},'minimum':function _0x2df596(){return _0x2dcacb;},'maximum':function _0x2aca28(){return _0x4114a5;},'interval':function _0x41310a(){return _0x40ba73;}},'fragmentShaderSource':new Cesium$3['ShaderSource']({'sources':[getWind_frag]}),'outputTexture':this[_0x455b96(0x181)][_0x455b96(0x12c)],'preExecute':function _0x42092a(){var _0x49b465=_0x455b96;_0x2a3d7e['primitives']['getWind'][_0x49b465(0x1bd)][_0x49b465(0x161)]=_0x2a3d7e['particlesTextures']['particlesWind'];}}),'updateSpeed':new CustomPrimitive({'commandType':_0x455b96(0x155),'uniformMap':{'currentParticlesSpeed':function _0x5674a5(){var _0x49e364=_0x455b96;return _0x2a3d7e[_0x49e364(0x181)][_0x49e364(0x132)];},'particlesWind':function _0x152fa9(){var _0x79df64=_0x455b96;return _0x2a3d7e[_0x79df64(0x181)]['particlesWind'];},'uSpeedRange':function _0x4059c5(){return _0x199136;},'vSpeedRange':function _0x4b91df(){return _0x251d3c;},'pixelSize':function _0x3322bb(){return _0x4a1f47['pixelSize'];},'speedFactor':function _0x36140e(){var _0x33d796=_0x455b96;return _0x50ca58[_0x33d796(0x180)];}},'fragmentShaderSource':new Cesium$3['ShaderSource']({'sources':[updateSpeed_frag]}),'outputTexture':this[_0x455b96(0x181)][_0x455b96(0x1aa)],'preExecute':function _0x1f0ee0(){var _0x4f2fed=_0x455b96,_0x5ad20f=_0x2a3d7e['particlesTextures'][_0x4f2fed(0x132)];_0x2a3d7e[_0x4f2fed(0x181)]['currentParticlesSpeed']=_0x2a3d7e[_0x4f2fed(0x181)]['postProcessingSpeed'],_0x2a3d7e[_0x4f2fed(0x181)]['postProcessingSpeed']=_0x5ad20f,_0x2a3d7e[_0x4f2fed(0xcd)]['updateSpeed'][_0x4f2fed(0x1bd)]['outputTexture']=_0x2a3d7e[_0x4f2fed(0x181)][_0x4f2fed(0x1aa)];}}),'updatePosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesPosition':function _0x5df8fd(){return _0x2a3d7e['particlesTextures']['currentParticlesPosition'];},'currentParticlesSpeed':function _0xf078d7(){return _0x2a3d7e['particlesTextures']['currentParticlesSpeed'];}},'fragmentShaderSource':new Cesium$3[(_0x455b96(0x14b))]({'sources':[updatePosition_frag]}),'outputTexture':this['particlesTextures']['nextParticlesPosition'],'preExecute':function _0xd946c6(){var _0x5eea17=_0x455b96,_0x1efb47=_0x2a3d7e['particlesTextures']['currentParticlesPosition'];_0x2a3d7e[_0x5eea17(0x181)]['currentParticlesPosition']=_0x2a3d7e['particlesTextures']['postProcessingPosition'],_0x2a3d7e['particlesTextures']['postProcessingPosition']=_0x1efb47,_0x2a3d7e['primitives']['updatePosition'][_0x5eea17(0x1bd)][_0x5eea17(0x161)]=_0x2a3d7e['particlesTextures']['nextParticlesPosition'];}}),'postProcessingPosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'nextParticlesPosition':function _0x33d71b(){return _0x2a3d7e['particlesTextures']['nextParticlesPosition'];},'nextParticlesSpeed':function _0x4c8fee(){var _0x19f30f=_0x455b96;return _0x2a3d7e[_0x19f30f(0x181)]['nextParticlesSpeed'];},'lonRange':function _0x13e9b4(){var _0x4b3baf=_0x455b96;return _0x4a1f47[_0x4b3baf(0xc8)];},'latRange':function _0x193a2d(){return _0x4a1f47['latRange'];},'randomCoefficient':function _0x61b906(){var _0x223dff=Math['random']();return _0x223dff;},'dropRate':function _0x2de7eb(){return _0x50ca58['dropRate'];},'dropRateBump':function _0x3aecac(){return _0x50ca58['dropRateBump'];}},'fragmentShaderSource':new Cesium$3['ShaderSource']({'sources':[postProcessingPosition_frag]}),'outputTexture':this['particlesTextures'][_0x455b96(0x102)],'preExecute':function _0x4fb248(){var _0x89c3fb=_0x455b96;_0x2a3d7e['primitives']['postProcessingPosition']['commandToExecute'][_0x89c3fb(0x161)]=_0x2a3d7e['particlesTextures'][_0x89c3fb(0x102)];}}),'postProcessingSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'postProcessingPosition':function _0x47cb52(){var _0x155537=_0x455b96;return _0x2a3d7e['particlesTextures'][_0x155537(0x102)];},'nextParticlesSpeed':function _0x1294e2(){return _0x2a3d7e['particlesTextures']['nextParticlesSpeed'];}},'fragmentShaderSource':new Cesium$3['ShaderSource']({'sources':[postProcessingSpeed_frag]}),'outputTexture':this['particlesTextures']['postProcessingSpeed'],'preExecute':function _0x10b7f7(){_0x2a3d7e['primitives']['postProcessingSpeed']['commandToExecute']['outputTexture']=_0x2a3d7e['particlesTextures']['postProcessingSpeed'];}})};}}]),_0x50810a;}()),Cesium$2=mars3d__namespace['Cesium'],ParticleSystem=(function(){var _0x10bb64=_0x5a162f;function _0x18e615(_0x2eb929,_0x2806d6,_0x1cce3b,_0x55cf87){var _0x136836=_0x4cc5;_classCallCheck(this,_0x18e615),this['context']=_0x2eb929,_0x2806d6=_objectSpread2({},_0x2806d6);if(_0x2806d6[_0x136836(0x194)]&&_0x2806d6['vdata']){var _0x534bb0,_0xac2765,_0x1a190d,_0x44a57f,_0x595ea2,_0x3efe39;_0x2806d6['dimensions']={},_0x2806d6[_0x136836(0xff)][_0x136836(0x10d)]=_0x2806d6['cols'],_0x2806d6['dimensions'][_0x136836(0x13a)]=_0x2806d6[_0x136836(0x124)],_0x2806d6['dimensions'][_0x136836(0xfc)]=_0x2806d6['lev']||0x1,_0x2806d6['lon']={},_0x2806d6['lon']['min']=_0x2806d6[_0x136836(0x1b0)],_0x2806d6['lon']['max']=_0x2806d6[_0x136836(0x188)],_0x2806d6['lat']={},_0x2806d6[_0x136836(0x13a)]['min']=_0x2806d6['ymin'],_0x2806d6['lat'][_0x136836(0x14a)]=_0x2806d6['ymax'],_0x2806d6['lev']={},_0x2806d6['lev'][_0x136836(0xf6)]=(_0x534bb0=_0x2806d6['levmin'])!==null&&_0x534bb0!==void 0x0?_0x534bb0:0x1,_0x2806d6[_0x136836(0xfc)]['max']=(_0xac2765=_0x2806d6[_0x136836(0x19d)])!==null&&_0xac2765!==void 0x0?_0xac2765:0x1,_0x2806d6['U']={},_0x2806d6['U']['array']=new Float32Array(_0x2806d6['udata']),_0x2806d6['U']['min']=(_0x1a190d=_0x2806d6['umin'])!==null&&_0x1a190d!==void 0x0?_0x1a190d:Math[_0x136836(0xf6)][_0x136836(0x159)](Math,_toConsumableArray(_0x2806d6[_0x136836(0x194)])),_0x2806d6['U']['max']=(_0x44a57f=_0x2806d6['umax'])!==null&&_0x44a57f!==void 0x0?_0x44a57f:Math['max'][_0x136836(0x159)](Math,_toConsumableArray(_0x2806d6[_0x136836(0x194)])),_0x2806d6['V']={},_0x2806d6['V']['array']=new Float32Array(_0x2806d6['vdata']),_0x2806d6['V']['min']=(_0x595ea2=_0x2806d6['vmin'])!==null&&_0x595ea2!==void 0x0?_0x595ea2:Math[_0x136836(0xf6)]['apply'](Math,_toConsumableArray(_0x2806d6['vdata'])),_0x2806d6['V'][_0x136836(0x14a)]=(_0x3efe39=_0x2806d6['vmax'])!==null&&_0x3efe39!==void 0x0?_0x3efe39:Math['max'][_0x136836(0x159)](Math,_toConsumableArray(_0x2806d6[_0x136836(0x15e)]));}this['data']=_0x2806d6,this[_0x136836(0xc6)]=_0x1cce3b,this['viewerParameters']=_0x55cf87,this['particlesComputing']=new ParticlesComputing(this['context'],this['data'],this['options'],this['viewerParameters']),this['particlesRendering']=new ParticlesRendering(this[_0x136836(0x16f)],this['data'],this['options'],this['viewerParameters'],this['particlesComputing']);}return _createClass(_0x18e615,[{'key':'canvasResize','value':function _0x34bb52(_0x43ce8a){var _0x3f6978=_0x4cc5,_0x57e6b4=this;this['particlesComputing']['destroyParticlesTextures'](),Object['keys'](this['particlesComputing'][_0x3f6978(0x185)])[_0x3f6978(0x1ba)](function(_0x51df82){var _0x15974a=_0x3f6978;_0x57e6b4['particlesComputing'][_0x15974a(0x185)][_0x51df82]['destroy']();}),this[_0x3f6978(0x112)]['textures'][_0x3f6978(0x11d)]['destroy'](),Object['keys'](this['particlesRendering']['framebuffers'])['forEach'](function(_0x2e0c56){var _0x207e52=_0x3f6978;_0x57e6b4['particlesRendering'][_0x207e52(0x119)][_0x2e0c56]['destroy']();}),this['context']=_0x43ce8a,this['particlesComputing']=new ParticlesComputing(this['context'],this['data'],this['options'],this['viewerParameters']),this['particlesRendering']=new ParticlesRendering(this['context'],this['data'],this['options'],this['viewerParameters'],this[_0x3f6978(0x15d)]);}},{'key':'clearFramebuffers','value':function _0x4c3c30(){var _0x70e51d=_0x4cc5,_0x11fa17=this,_0x353778=new Cesium$2['ClearCommand']({'color':new Cesium$2['Color'](0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Cesium$2[_0x70e51d(0x10c)][_0x70e51d(0x198)]});Object['keys'](this['particlesRendering'][_0x70e51d(0x119)])[_0x70e51d(0x1ba)](function(_0x130427){_0x353778['framebuffer']=_0x11fa17['particlesRendering']['framebuffers'][_0x130427],_0x353778['execute'](_0x11fa17['context']);});}},{'key':_0x10bb64(0xfb),'value':function _0x3a1fad(_0x1d6c8e){var _0x123e87=_0x10bb64;this['clearFramebuffers'](),this['particlesComputing']['destroyParticlesTextures'](),this['particlesComputing'][_0x123e87(0x1ab)](this['context'],this['options'],this['viewerParameters']);if(_0x1d6c8e){var _0x43203b=this[_0x123e87(0x112)]['createSegmentsGeometry'](this['options']);this[_0x123e87(0x112)]['primitives']['segments']['geometry']=_0x43203b;var _0x5df0ea=Cesium$2['VertexArray']['fromGeometry']({'context':this['context'],'geometry':_0x43203b,'attributeLocations':this[_0x123e87(0x112)][_0x123e87(0xcd)]['segments']['attributeLocations'],'bufferUsage':Cesium$2['BufferUsage']['STATIC_DRAW']});this['particlesRendering']['primitives']['segments']['commandToExecute']['vertexArray']=_0x5df0ea;}}},{'key':'setOptions','value':function _0x4c691e(_0x59964c){var _0x38a0f4=_0x10bb64,_0x4119f9=this,_0x1384c3=![];this['options']['maxParticles']!==_0x59964c[_0x38a0f4(0x177)]&&(_0x1384c3=!![]),Object[_0x38a0f4(0xf0)](_0x59964c)['forEach'](function(_0xa9d222){_0x4119f9['options'][_0xa9d222]=_0x59964c[_0xa9d222];}),this['refreshParticles'](_0x1384c3);}},{'key':_0x10bb64(0x18b),'value':function _0x326f4d(_0x5ccc17){var _0x33fc35=_0x10bb64,_0x43b578=this;Object[_0x33fc35(0xf0)](_0x5ccc17)['forEach'](function(_0x4cc5d5){_0x43b578['viewerParameters'][_0x4cc5d5]=_0x5ccc17[_0x4cc5d5];}),this['refreshParticles'](![]);}},{'key':_0x10bb64(0x1a3),'value':function _0x3e8ee4(){var _0x361e33=_0x10bb64,_0x49e099=this;clearTimeout(this['canrefresh']),this['particlesComputing']['destroyParticlesTextures'](),Object[_0x361e33(0xf0)](this['particlesComputing'][_0x361e33(0x185)])[_0x361e33(0x1ba)](function(_0x5a319e){var _0x1cce39=_0x361e33;_0x49e099['particlesComputing'][_0x1cce39(0x185)][_0x5a319e]['destroy']();}),this['particlesRendering'][_0x361e33(0x125)]['colorTable']['destroy'](),Object['keys'](this['particlesRendering'][_0x361e33(0x119)])[_0x361e33(0x1ba)](function(_0x3ea4b0){var _0x185174=_0x361e33;_0x49e099['particlesRendering']['framebuffers'][_0x3ea4b0][_0x185174(0x1a3)]();});for(var _0x2b5634 in this){delete this[_0x2b5634];}}}]),_0x18e615;}()),Cesium$1=mars3d__namespace['Cesium'],BaseLayer$1=mars3d__namespace['layer']['BaseLayer'],DEF_OPTIONS={'particlesNumber':0x1000,'fixedHeight':0x0,'fadeOpacity':0.996,'dropRate':0.003,'dropRateBump':0.01,'speedFactor':0.5,'lineWidth':0x2,'colors':['rgb(206,255,255)']},WindLayer=function(_0x1017a2){var _0x1f1f43=_0x5a162f;_inherits(_0x250aea,_0x1017a2);var _0x40742f=_createSuper(_0x250aea);function _0x250aea(){var _0x2a1a38,_0x19beb9=arguments['length']>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};return _classCallCheck(this,_0x250aea),_0x19beb9=_objectSpread2(_objectSpread2({},DEF_OPTIONS),_0x19beb9),_0x2a1a38=_0x40742f['call'](this,_0x19beb9),_0x2a1a38['_setOptionsHook'](_0x19beb9),_0x2a1a38;}return _createClass(_0x250aea,[{'key':_0x1f1f43(0x117),'get':function _0x238152(){return this['primitives'];}},{'key':'data','get':function _0x3a1414(){var _0x1ee689=_0x1f1f43;return this[_0x1ee689(0x15b)];},'set':function _0x47e718(_0x1e6e6c){this['setData'](_0x1e6e6c);}},{'key':'colors','get':function _0xd77e17(){return this['options']['colors'];},'set':function _0x1fd440(_0x4cab7c){var _0x341fae=_0x1f1f43;this[_0x341fae(0xc6)]['colors']=_0x4cab7c,this[_0x341fae(0x196)]&&this['particleSystem']['setOptions']({'colors':_0x4cab7c}),this['resize']();}},{'key':'_mountedHook','value':function _0x591c85(){}},{'key':_0x1f1f43(0x146),'value':function _0x2c21d6(){var _0x1c900c=_0x1f1f43;this['scene']=this['_map'][_0x1c900c(0xeb)],this[_0x1c900c(0x169)]=this['_map']['camera'],this['primitives']=new Cesium$1['PrimitiveCollection'](),this[_0x1c900c(0x13f)]['scene']['primitives'][_0x1c900c(0x133)](this['primitives']),this['viewerParameters']={'lonRange':new Cesium$1['Cartesian2'](),'latRange':new Cesium$1[(_0x1c900c(0x163))](),'pixelSize':0x0},this['globeBoundingSphere']=new Cesium$1['BoundingSphere'](Cesium$1[_0x1c900c(0xe8)]['ZERO'],0.99*0x615299),this['updateViewerParameters'](),window[_0x1c900c(0x12d)]('resize',this[_0x1c900c(0x16d)][_0x1c900c(0x17d)](this),![]),this['mouse_down']=![],this[_0x1c900c(0xfe)]=![],this['_map']['on'](mars3d__namespace['EventType'][_0x1c900c(0xfa)],this['_onMapWhellEvent'],this),this['_map']['on'](mars3d__namespace['EventType']['mouseDown'],this['_onMouseDownEvent'],this),this['_map']['on'](mars3d__namespace[_0x1c900c(0xc9)]['mouseUp'],this[_0x1c900c(0x19f)],this),this['_map']['on'](mars3d__namespace[_0x1c900c(0xc9)][_0x1c900c(0xc2)],this['_onMouseMoveEvent'],this),this['_data']&&this['setData'](this['_data']);}},{'key':'_removedHook','value':function _0xcab22(){var _0x20b140=_0x1f1f43;window['removeEventListener']('resize',this[_0x20b140(0x16d)]),this['_map']['off'](mars3d__namespace['EventType']['preRender'],this[_0x20b140(0x1be)],this),this['_map'][_0x20b140(0xed)](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this),this['_map']['off'](mars3d__namespace['EventType']['mouseDown'],this[_0x20b140(0x176)],this),this['_map']['off'](mars3d__namespace[_0x20b140(0xc9)]['mouseUp'],this['_onMouseUpEvent'],this),this[_0x20b140(0x13f)][_0x20b140(0xed)](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this),this[_0x20b140(0xcd)][_0x20b140(0xe5)](),this['_map']['scene']['primitives']['remove'](this['primitives']);}},{'key':'resize','value':function _0x29cdfc(){var _0x5a9f60=_0x1f1f43;if(!this['show']||!this['particleSystem'])return;this[_0x5a9f60(0xcd)]['show']=![],this['primitives']['removeAll'](),this[_0x5a9f60(0x13f)]['once'](mars3d__namespace['EventType']['preRender'],this['_onMap_preRenderEvent'],this);}},{'key':'_onMap_preRenderEvent','value':function _0xd8514a(_0x14d3a0){var _0x28b887=_0x1f1f43;this['particleSystem']['canvasResize'](this['scene']['context']),this['addPrimitives'](),this[_0x28b887(0xcd)][_0x28b887(0x183)]=!![];}},{'key':_0x1f1f43(0x179),'value':function _0x49005b(_0x5309f8){var _0x9c827c=_0x1f1f43,_0x23ebf0=this;clearTimeout(this[_0x9c827c(0x107)]);if(!this['show']||!this['particleSystem'])return;this['primitives']['show']=![],this['refreshTimer']=setTimeout(function(){var _0x5164be=_0x9c827c;if(!_0x23ebf0['show'])return;_0x23ebf0[_0x5164be(0x127)]();},0xc8);}},{'key':'_onMouseDownEvent','value':function _0x5134c8(_0x15e82d){var _0x3384e6=_0x1f1f43;this[_0x3384e6(0x158)]=!![];}},{'key':'_onMouseMoveEvent','value':function _0x5d131f(_0x2fe1ef){var _0x29fba3=_0x1f1f43;if(!this['show']||!this['particleSystem'])return;this[_0x29fba3(0x158)]&&(this['primitives']['show']=![],this[_0x29fba3(0xfe)]=!![]);}},{'key':'_onMouseUpEvent','value':function _0x2c72a3(_0x4618a4){var _0x5b7cb9=_0x1f1f43;if(!this['show']||!this[_0x5b7cb9(0x196)])return;this['mouse_down']&&this[_0x5b7cb9(0xfe)]&&this['redraw'](),this['primitives'][_0x5b7cb9(0x183)]=!![],this['mouse_down']=![],this['mouse_move']=![];}},{'key':_0x1f1f43(0x127),'value':function _0x458636(){var _0x3b22bd=_0x1f1f43;if(!this[_0x3b22bd(0x13f)]||!this['show'])return;this[_0x3b22bd(0xf3)](),this[_0x3b22bd(0x196)][_0x3b22bd(0x18b)](this['viewerParameters']),this['primitives'][_0x3b22bd(0x183)]=!![];}},{'key':_0x1f1f43(0x101),'value':function _0x5ef449(_0x1de4b5){var _0x4287b1=_0x1f1f43;this['_data']=_0x1de4b5,this['particleSystem']&&this['particleSystem'][_0x4287b1(0x1a3)](),this['particleSystem']=new ParticleSystem(this['scene'][_0x4287b1(0x16f)],_0x1de4b5,this['getOptions'](),this['viewerParameters']),this['addPrimitives']();}},{'key':'_setOptionsHook','value':function _0xd92d18(_0x1a17da,_0x3f9b2f){var _0x4e7994=_0x1f1f43;if(_0x1a17da)for(var _0x3e5e9d in _0x1a17da){this[_0x3e5e9d]=_0x1a17da[_0x3e5e9d];}this['particleSystem']&&this['particleSystem']['setOptions'](this[_0x4e7994(0x157)]());}},{'key':_0x1f1f43(0x157),'value':function _0x104122(){var _0x1d7587=_0x1f1f43,_0x20a661=Math['ceil'](Math['sqrt'](this['particlesNumber']));return this['particlesNumber']=_0x20a661*_0x20a661,{'particlesTextureSize':_0x20a661,'maxParticles':this['particlesNumber'],'particleHeight':this['fixedHeight'],'fadeOpacity':this[_0x1d7587(0x18d)],'dropRate':this['dropRate'],'dropRateBump':this['dropRateBump'],'speedFactor':this['speedFactor'],'lineWidth':this['lineWidth'],'colors':this['colors']};}},{'key':'addPrimitives','value':function _0x19d7b4(){var _0x1640a1=_0x1f1f43;this['primitives']['add'](this['particleSystem'][_0x1640a1(0x15d)][_0x1640a1(0xcd)]['getWind']),this['primitives'][_0x1640a1(0x133)](this['particleSystem'][_0x1640a1(0x15d)]['primitives']['updateSpeed']),this['primitives'][_0x1640a1(0x133)](this['particleSystem']['particlesComputing']['primitives']['updatePosition']),this['primitives'][_0x1640a1(0x133)](this['particleSystem']['particlesComputing']['primitives']['postProcessingPosition']),this['primitives'][_0x1640a1(0x133)](this['particleSystem']['particlesComputing'][_0x1640a1(0xcd)][_0x1640a1(0x13b)]),this[_0x1640a1(0xcd)][_0x1640a1(0x133)](this[_0x1640a1(0x196)]['particlesRendering']['primitives']['segments']),this['primitives']['add'](this[_0x1640a1(0x196)]['particlesRendering'][_0x1640a1(0xcd)][_0x1640a1(0x16e)]),this[_0x1640a1(0xcd)][_0x1640a1(0x133)](this['particleSystem'][_0x1640a1(0x112)]['primitives']['screen']);}},{'key':'updateViewerParameters','value':function _0x42d68b(){var _0x41ff58=_0x1f1f43,_0x59849b=this['camera']['computeViewRectangle'](this['scene'][_0x41ff58(0x12f)][_0x41ff58(0xfd)]);if(!_0x59849b){var _0x541257=this['_map'][_0x41ff58(0x174)]();_0x59849b=Cesium$1['Rectangle'][_0x41ff58(0x178)](_0x541257[_0x41ff58(0x1b0)],_0x541257[_0x41ff58(0x165)],_0x541257[_0x41ff58(0x188)],_0x541257['ymax']);}var _0x2cca36=Util['viewRectangleToLonLatRange'](_0x59849b);this[_0x41ff58(0xc4)][_0x41ff58(0xc8)]['x']=_0x2cca36['lon']['min'],this['viewerParameters']['lonRange']['y']=_0x2cca36['lon']['max'],this['viewerParameters']['latRange']['x']=_0x2cca36[_0x41ff58(0x13a)]['min'],this['viewerParameters']['latRange']['y']=_0x2cca36['lat']['max'];var _0x6a33e=this[_0x41ff58(0x169)]['getPixelSize'](this['globeBoundingSphere'],this['scene']['drawingBufferWidth'],this['scene'][_0x41ff58(0x1b9)]);_0x6a33e>0x0&&(this['viewerParameters']['pixelSize']=_0x6a33e);}}]),_0x250aea;}(BaseLayer$1);function _0x4cc5(_0x424579,_0x440db7){var _0x34ba55=_0x34ba();return _0x4cc5=function(_0x4cc53a,_0x4329e0){_0x4cc53a=_0x4cc53a-0xc1;var _0x32dba1=_0x34ba55[_0x4cc53a];return _0x32dba1;},_0x4cc5(_0x424579,_0x440db7);}mars3d__namespace[_0x5a162f(0x170)][_0x5a162f(0x129)]('wind',WindLayer),mars3d__namespace['layer']['WindLayer']=WindLayer;var CanvasParticle=(function(){var _0x431aa0=_0x5a162f;function _0x1976ed(){var _0x331867=_0x4cc5;_classCallCheck(this,_0x1976ed),this[_0x331867(0x152)]=null,this[_0x331867(0x13a)]=null,this[_0x331867(0x1b7)]=null,this['tlat']=null,this['age']=null;}return _createClass(_0x1976ed,[{'key':_0x431aa0(0x1a3),'value':function _0x5e3ff7(){for(var _0x15db4c in this){delete this[_0x15db4c];}}}]),_0x1976ed;}()),CanvasWindField=(function(){var _0x2ba6d6=_0x5a162f;function _0xe26015(_0x299a18){_classCallCheck(this,_0xe26015),this['setOptions'](_0x299a18);}return _createClass(_0xe26015,[{'key':'speedRate','get':function _0x57ac30(){return this['_speedRate'];},'set':function _0x38a393(_0x740019){var _0x43af91=_0x4cc5;this[_0x43af91(0x10f)]=(0x64-(_0x740019>0x63?0x63:_0x740019))*0x64,this[_0x43af91(0x14e)]=[(this['xmax']-this[_0x43af91(0x1b0)])/this['_speedRate'],(this[_0x43af91(0xdc)]-this['ymin'])/this['_speedRate']];}},{'key':'maxAge','get':function _0x1d2762(){return this['_maxAge'];},'set':function _0x67642a(_0x2e9f7c){this['_maxAge']=_0x2e9f7c;}},{'key':_0x2ba6d6(0xe7),'value':function _0x56e92a(_0x2445e0){var _0x430aa6=_0x2ba6d6;this['options']=_0x2445e0,this['maxAge']=_0x2445e0[_0x430aa6(0xe2)]||0x78,this['speedRate']=_0x2445e0['speedRate']||0x32,this['particles']=[];var _0x278ab1=_0x2445e0['particlesNumber']||0x1000;for(var _0x111ec0=0x0;_0x111ec0<_0x278ab1;_0x111ec0++){var _0xb8a8a2=this['_randomParticle'](new CanvasParticle());this[_0x430aa6(0x121)]['push'](_0xb8a8a2);}}},{'key':'setDate','value':function _0x859261(_0x3cd2fb){var _0x551932=_0x2ba6d6;this[_0x551932(0x124)]=_0x3cd2fb['rows'],this['cols']=_0x3cd2fb[_0x551932(0x182)],this['xmin']=_0x3cd2fb[_0x551932(0x1b0)],this['xmax']=_0x3cd2fb[_0x551932(0x188)],this[_0x551932(0x165)]=_0x3cd2fb['ymin'],this[_0x551932(0xdc)]=_0x3cd2fb['ymax'],this['grid']=[];var _0x506a46=_0x3cd2fb['udata'],_0x5540c9=_0x3cd2fb[_0x551932(0x15e)],_0x332c2b=![];_0x506a46[_0x551932(0x130)]===this['rows']&&_0x506a46[0x0]['length']===this['cols']&&(_0x332c2b=!![]);var _0x10bae6=0x0,_0x39fabe=null,_0x219b92=null;for(var _0x4c2248=0x0;_0x4c2248<this[_0x551932(0x124)];_0x4c2248++){_0x39fabe=[];for(var _0x18ab60=0x0;_0x18ab60<this[_0x551932(0x182)];_0x18ab60++,_0x10bae6++){_0x332c2b?_0x219b92=this[_0x551932(0x15a)](_0x506a46[_0x4c2248][_0x18ab60],_0x5540c9[_0x4c2248][_0x18ab60]):_0x219b92=this[_0x551932(0x15a)](_0x506a46[_0x10bae6],_0x5540c9[_0x10bae6]),_0x39fabe['push'](_0x219b92);}this['grid']['push'](_0x39fabe);}this['options']['reverseY']&&this['grid'][_0x551932(0x1b3)]();}},{'key':'clear','value':function _0x47aef9(){var _0x578118=_0x2ba6d6;delete this['rows'],delete this['cols'],delete this[_0x578118(0x1b0)],delete this[_0x578118(0x188)],delete this[_0x578118(0x165)],delete this['ymax'],delete this['grid'],delete this['particles'];}},{'key':'toGridXY','value':function _0x3ad05d(_0x357412,_0x4e920f){var _0x23caea=_0x2ba6d6,_0x7b4715=(_0x357412-this['xmin'])/(this[_0x23caea(0x188)]-this[_0x23caea(0x1b0)])*(this['cols']-0x1),_0x2c52b3=(this['ymax']-_0x4e920f)/(this['ymax']-this['ymin'])*(this['rows']-0x1);return[_0x7b4715,_0x2c52b3];}},{'key':'getUVByXY','value':function _0x3298ed(_0x23a5cb,_0x4e2008){var _0x4672cf=_0x2ba6d6;if(_0x23a5cb<0x0||_0x23a5cb>=this['cols']||_0x4e2008>=this[_0x4672cf(0x124)])return[0x0,0x0,0x0];var _0x5ad0bd=Math[_0x4672cf(0xe3)](_0x23a5cb),_0x4ac934=Math['floor'](_0x4e2008);if(_0x5ad0bd===_0x23a5cb&&_0x4ac934===_0x4e2008)return this[_0x4672cf(0x145)][_0x4e2008][_0x23a5cb];var _0x4bbf9f=_0x5ad0bd+0x1,_0x1c0cbc=_0x4ac934+0x1,_0x5e4a8f=this['getUVByXY'](_0x5ad0bd,_0x4ac934),_0x18772f=this['getUVByXY'](_0x4bbf9f,_0x4ac934),_0x4467a2=this[_0x4672cf(0xca)](_0x5ad0bd,_0x1c0cbc),_0x503d95=this['getUVByXY'](_0x4bbf9f,_0x1c0cbc),_0x4ebe3b=null;try{_0x4ebe3b=this[_0x4672cf(0x15f)](_0x23a5cb-_0x5ad0bd,_0x4e2008-_0x4ac934,_0x5e4a8f,_0x18772f,_0x4467a2,_0x503d95);}catch(_0x1f6dd0){console[_0x4672cf(0x10b)](_0x23a5cb,_0x4e2008);}return _0x4ebe3b;}},{'key':'_bilinearInterpolation','value':function _0x3fdb97(_0x106124,_0x160b79,_0x2e5052,_0x2fbbbd,_0x4244f6,_0x272377){var _0x1869ce=0x1-_0x106124,_0x4801a6=0x1-_0x160b79,_0x48750f=_0x1869ce*_0x4801a6,_0x4ea309=_0x106124*_0x4801a6,_0xded291=_0x1869ce*_0x160b79,_0x81f90a=_0x106124*_0x160b79,_0xd971fb=_0x2e5052[0x0]*_0x48750f+_0x2fbbbd[0x0]*_0x4ea309+_0x4244f6[0x0]*_0xded291+_0x272377[0x0]*_0x81f90a,_0x9b19e5=_0x2e5052[0x1]*_0x48750f+_0x2fbbbd[0x1]*_0x4ea309+_0x4244f6[0x1]*_0xded291+_0x272377[0x1]*_0x81f90a;return this['_calcUV'](_0xd971fb,_0x9b19e5);}},{'key':_0x2ba6d6(0x15a),'value':function _0x1b3b41(_0x35858b,_0x5a5981){return[+_0x35858b,+_0x5a5981,Math['sqrt'](_0x35858b*_0x35858b+_0x5a5981*_0x5a5981)];}},{'key':_0x2ba6d6(0x167),'value':function _0xa99029(_0x1e447d,_0x4b1d93){var _0x39ce60=_0x2ba6d6;if(!this['isInExtent'](_0x1e447d,_0x4b1d93))return null;var _0x2be363=this['toGridXY'](_0x1e447d,_0x4b1d93),_0x5a58ec=this[_0x39ce60(0xca)](_0x2be363[0x0],_0x2be363[0x1]);return _0x5a58ec;}},{'key':'isInExtent','value':function _0x78e29e(_0x3b5aa4,_0x4163c){var _0x493a3e=_0x2ba6d6;return _0x3b5aa4>=this[_0x493a3e(0x1b0)]&&_0x3b5aa4<=this['xmax']&&_0x4163c>=this[_0x493a3e(0x165)]&&_0x4163c<=this[_0x493a3e(0xdc)]?!![]:![];}},{'key':'getRandomLatLng','value':function _0x564af8(){var _0x37347a=_0x2ba6d6,_0x447863=fRandomByfloat(this[_0x37347a(0x1b0)],this[_0x37347a(0x188)]),_0x3547bc=fRandomByfloat(this['ymin'],this['ymax']);return{'lat':_0x3547bc,'lng':_0x447863};}},{'key':'getParticles','value':function _0x1378c2(){var _0x3453f1=_0x2ba6d6,_0xbc05f5,_0x352f73,_0x5f2bfe;for(var _0x44b078=0x0,_0x505269=this['particles']['length'];_0x44b078<_0x505269;_0x44b078++){var _0x1bcd3a=this['particles'][_0x44b078];_0x1bcd3a[_0x3453f1(0x110)]<=0x0&&(_0x1bcd3a=this[_0x3453f1(0xf4)](_0x1bcd3a));if(_0x1bcd3a['age']>0x0){var _0x678312=_0x1bcd3a['tlng'],_0x2e2529=_0x1bcd3a['tlat'];_0x5f2bfe=this[_0x3453f1(0x167)](_0x678312,_0x2e2529),_0x5f2bfe?(_0xbc05f5=_0x678312+this[_0x3453f1(0x14e)][0x0]*_0x5f2bfe[0x0],_0x352f73=_0x2e2529+this['_calc_speedRate'][0x1]*_0x5f2bfe[0x1],_0x1bcd3a['lng']=_0x678312,_0x1bcd3a['lat']=_0x2e2529,_0x1bcd3a['tlng']=_0xbc05f5,_0x1bcd3a[_0x3453f1(0xd2)]=_0x352f73,_0x1bcd3a['age']--):_0x1bcd3a['age']=0x0;}}return this['particles'];}},{'key':_0x2ba6d6(0xf4),'value':function _0x386980(_0x42407){var _0x141c6c=_0x2ba6d6,_0x3a1f81,_0x159ad6;for(var _0x3f3116=0x0;_0x3f3116<0x1e;_0x3f3116++){_0x3a1f81=this['getRandomLatLng'](),_0x159ad6=this[_0x141c6c(0x167)](_0x3a1f81[_0x141c6c(0x152)],_0x3a1f81['lat']);if(_0x159ad6&&_0x159ad6[0x2]>0x0)break;}if(!_0x159ad6)return _0x42407;var _0x428843=_0x3a1f81[_0x141c6c(0x152)]+this['_calc_speedRate'][0x0]*_0x159ad6[0x0],_0xc46a65=_0x3a1f81['lat']+this['_calc_speedRate'][0x1]*_0x159ad6[0x1];return _0x42407[_0x141c6c(0x152)]=_0x3a1f81['lng'],_0x42407[_0x141c6c(0x13a)]=_0x3a1f81['lat'],_0x42407['tlng']=_0x428843,_0x42407['tlat']=_0xc46a65,_0x42407['age']=Math[_0x141c6c(0x1b2)](Math[_0x141c6c(0x1b6)]()*this['maxAge']),_0x42407;}},{'key':'destroy','value':function _0x23d5b1(){for(var _0x46be01 in this){delete this[_0x46be01];}}}]),_0xe26015;}());function fRandomByfloat(_0x2bf585,_0x29b55f){var _0x13e5f3=_0x5a162f;return _0x2bf585+Math[_0x13e5f3(0x1b6)]()*(_0x29b55f-_0x2bf585);}var Cesium=mars3d__namespace[_0x5a162f(0xdd)],BaseLayer=mars3d__namespace[_0x5a162f(0x117)][_0x5a162f(0x195)],CanvasWindLayer=function(_0x4241fa){var _0x236abd=_0x5a162f;_inherits(_0x5350c2,_0x4241fa);var _0x250882=_createSuper(_0x5350c2);function _0x5350c2(){var _0xa6adf2,_0x4b59c5=arguments['length']>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};return _classCallCheck(this,_0x5350c2),_0xa6adf2=_0x250882['call'](this,_0x4b59c5),_0xa6adf2['_setOptionsHook'](_0x4b59c5),_0xa6adf2['canvas']=null,_0xa6adf2;}return _createClass(_0x5350c2,[{'key':'_setOptionsHook','value':function _0x2c8001(_0x2811a8,_0x5c69f6){var _0x285e57=_0x4cc5,_0x5046cb,_0x5475c2,_0x2d4c85;this[_0x285e57(0x190)]=0x3e8/(_0x2811a8['frameRate']||0xa),this[_0x285e57(0xd3)]=(_0x5046cb=this[_0x285e57(0xc6)]['pointerEvents'])!==null&&_0x5046cb!==void 0x0?_0x5046cb:![],this['color']=_0x2811a8['color']||'#ffffff',this['lineWidth']=_0x2811a8[_0x285e57(0x111)]||0x1,this['fixedHeight']=(_0x5475c2=_0x2811a8['fixedHeight'])!==null&&_0x5475c2!==void 0x0?_0x5475c2:0x0,this['reverseY']=(_0x2d4c85=_0x2811a8[_0x285e57(0x12a)])!==null&&_0x2d4c85!==void 0x0?_0x2d4c85:![],this[_0x285e57(0x1a6)]&&this[_0x285e57(0x1a6)][_0x285e57(0xe7)](_0x2811a8);}},{'key':'layer','get':function _0x16288c(){return this['canvas'];}},{'key':'canvasWidth','get':function _0x4e4954(){return this['_map']['scene']['canvas']['clientWidth'];}},{'key':'canvasHeight','get':function _0x560b88(){var _0x2f65ac=_0x4cc5;return this[_0x2f65ac(0x13f)]['scene']['canvas'][_0x2f65ac(0x16c)];}},{'key':'pointerEvents','get':function _0x4efc47(){return this['_pointerEvents'];},'set':function _0x1aac04(_0x38ffeb){var _0x59cbcc=_0x4cc5;this['_pointerEvents']=_0x38ffeb;if(!this['canvas'])return;_0x38ffeb?this['canvas']['style'][_0x59cbcc(0x1b5)]=_0x59cbcc(0x104):this[_0x59cbcc(0x148)][_0x59cbcc(0xe9)][_0x59cbcc(0x1b5)]='none';}},{'key':'particlesNumber','get':function _0xc08b5(){var _0xf0f6fd=_0x4cc5;return this[_0xf0f6fd(0xc6)]['particlesNumber'];},'set':function _0x2e84c9(_0xc00870){var _0x224aa8=_0x4cc5,_0x49e062=this;this['options'][_0x224aa8(0xf8)]=_0xc00870,clearTimeout(this[_0x224aa8(0x19a)]),this['_canrefresh']=setTimeout(function(){var _0x21b4aa=_0x224aa8;_0x49e062[_0x21b4aa(0x127)]();},0x1f4);}},{'key':'speedRate','get':function _0x3eb646(){return this['options']['speedRate'];},'set':function _0x3e7f5f(_0x929dbd){this['options']['speedRate']=_0x929dbd,this['windField']&&(this['windField']['speedRate']=_0x929dbd);}},{'key':_0x236abd(0xe2),'get':function _0x643f2e(){return this['options']['maxAge'];},'set':function _0x2f781c(_0x4afecf){var _0x441dba=_0x236abd;this['options'][_0x441dba(0xe2)]=_0x4afecf,this['windField']&&(this[_0x441dba(0x1a6)][_0x441dba(0xe2)]=_0x4afecf);}},{'key':'data','get':function _0xb85ac3(){return this['windData'];},'set':function _0x2e104f(_0x57c7f0){this['setData'](_0x57c7f0);}},{'key':'_showHook','value':function _0x414aff(_0x4a4135){var _0x1d6460=_0x236abd;_0x4a4135?this['_addedHook']():(this[_0x1d6460(0x116)]&&(this['options'][_0x1d6460(0x123)]=this['windData']),this['_removedHook']());}},{'key':_0x236abd(0xf2),'value':function _0x135ffe(){var _0x3d58e2=_0x236abd;this[_0x3d58e2(0xc6)][_0x3d58e2(0x12e)]?this['initWorker']():this['windField']=new CanvasWindField(this['options']);}},{'key':_0x236abd(0x146),'value':function _0x4a4881(){var _0x23a235=_0x236abd;this[_0x23a235(0x148)]=this['_createCanvas'](),this['canvasContext']=this['canvas']['getContext']('2d',{'willReadFrequently':!![]}),this[_0x23a235(0x1a2)](),this[_0x23a235(0xc6)]['data']&&this['setData'](this[_0x23a235(0xc6)]['data']);}},{'key':_0x236abd(0x18c),'value':function _0x2bd15d(){var _0x52043e=_0x236abd;this['clear'](),this['unbindEvent'](),this['canvas']&&(this['_map'][_0x52043e(0x16a)][_0x52043e(0x11a)](this['canvas']),delete this['canvas']);}},{'key':_0x236abd(0xda),'value':function _0x23952a(){var _0x3f5673=_0x236abd,_0x1db842=document['createElement'](_0x3f5673(0x148));_0x1db842[_0x3f5673(0xe9)]['position']='absolute',_0x1db842['style']['top']='0px',_0x1db842[_0x3f5673(0xe9)]['left']=_0x3f5673(0xd8),_0x1db842['style'][_0x3f5673(0xd9)]='100%',_0x1db842['style']['height']='100%',_0x1db842['style']['pointerEvents']=this[_0x3f5673(0xd3)]?_0x3f5673(0x10a):'none',_0x1db842[_0x3f5673(0xe9)]['zIndex']=0xa,_0x1db842['setAttribute']('id','canvasWindy'),_0x1db842['setAttribute'](_0x3f5673(0x128),_0x3f5673(0xd1)),this['_map']['container'][_0x3f5673(0x164)](_0x1db842);var _0x41e46b=this[_0x3f5673(0x13f)]['scene'];return _0x1db842[_0x3f5673(0xd9)]=_0x41e46b['canvas']['clientWidth'],_0x1db842['height']=_0x41e46b['canvas']['clientHeight'],_0x1db842;}},{'key':_0x236abd(0x16d),'value':function _0x463376(){var _0x547f00=_0x236abd;this['canvas']&&(this[_0x547f00(0x148)]['width']=this['canvasWidth'],this['canvas']['height']=this['canvasHeight']);}},{'key':'bindEvent','value':function _0x390a19(){var _0xab1120=_0x236abd,_0x11b536=this,_0x1653a0=Date[_0xab1120(0xec)]();(function _0x3c13d0(){var _0x27263b=_0xab1120;_0x11b536['animateFrame']=window[_0x27263b(0xf1)](_0x3c13d0);if(_0x11b536['show']&&_0x11b536[_0x27263b(0x1a6)]){var _0x11fd99=Date['now'](),_0x3604be=_0x11fd99-_0x1653a0;_0x3604be>_0x11b536['frameTime']&&(_0x1653a0=_0x11fd99-_0x3604be%_0x11b536['frameTime'],_0x11b536['update']());}}(),window['addEventListener'](_0xab1120(0x16d),this[_0xab1120(0x16d)]['bind'](this),![]),this['mouse_down']=![],this['mouse_move']=![],this['options']['mouseHidden']&&(this['_map']['on'](mars3d__namespace['EventType'][_0xab1120(0xfa)],this['_onMapWhellEvent'],this),this['_map']['on'](mars3d__namespace['EventType'][_0xab1120(0xd0)],this['_onMouseDownEvent'],this),this[_0xab1120(0x13f)]['on'](mars3d__namespace['EventType']['mouseUp'],this[_0xab1120(0x19f)],this)));}},{'key':'unbindEvent','value':function _0x1613f8(){var _0x1056ba=_0x236abd;window['cancelAnimationFrame'](this['animateFrame']),delete this['animateFrame'],window['removeEventListener'](_0x1056ba(0x16d),this['resize']),this['options']['mouseHidden']&&(this['_map']['off'](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this),this['_map']['off'](mars3d__namespace[_0x1056ba(0xc9)]['mouseDown'],this['_onMouseDownEvent'],this),this['_map']['off'](mars3d__namespace['EventType']['mouseUp'],this[_0x1056ba(0x19f)],this),this['_map'][_0x1056ba(0xed)](mars3d__namespace[_0x1056ba(0xc9)]['mouseMove'],this['_onMouseMoveEvent'],this));}},{'key':'_onMapWhellEvent','value':function _0x2f07a4(_0x42b130){var _0x3ef18e=this;clearTimeout(this['refreshTimer']);if(!this['show']||!this['canvas'])return;this['canvas']['style']['visibility']='hidden',this['refreshTimer']=setTimeout(function(){var _0x2b2209=_0x4cc5;if(!_0x3ef18e['show'])return;_0x3ef18e[_0x2b2209(0x127)](),_0x3ef18e[_0x2b2209(0x148)]['style']['visibility']='visible';},0xc8);}},{'key':_0x236abd(0x176),'value':function _0x46d293(_0x1551fc){var _0x513572=_0x236abd;this[_0x513572(0x158)]=!![],this['_map'][_0x513572(0xed)](mars3d__namespace[_0x513572(0xc9)]['mouseMove'],this['_onMouseMoveEvent'],this),this[_0x513572(0x13f)]['on'](mars3d__namespace[_0x513572(0xc9)][_0x513572(0xc2)],this['_onMouseMoveEvent'],this);}},{'key':'_onMouseMoveEvent','value':function _0x3bf68c(_0x54e3bc){var _0x124498=_0x236abd;if(!this['show']||!this['canvas'])return;this['mouse_down']&&(this[_0x124498(0x148)]['style'][_0x124498(0x100)]='hidden',this[_0x124498(0xfe)]=!![]);}},{'key':'_onMouseUpEvent','value':function _0x2c4bc7(_0x3c520d){var _0x18e9ad=_0x236abd;if(!this['show']||!this['canvas'])return;this['_map'][_0x18e9ad(0xed)](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this),this['mouse_down']&&this['mouse_move']&&this['redraw'](),this[_0x18e9ad(0x148)]['style'][_0x18e9ad(0x100)]='visible',this['mouse_down']=![],this['mouse_move']=![];}},{'key':_0x236abd(0x101),'value':function _0x412236(_0x47d051){var _0x38cd3d=_0x236abd;this['clear'](),this['windData']=_0x47d051,this['windField'][_0x38cd3d(0x18a)](_0x47d051),this['redraw']();}},{'key':'redraw','value':function _0x22c52b(){var _0x43c1e4=_0x236abd;if(!this['show'])return;this['windField'][_0x43c1e4(0xe7)](this['options']),this['update']();}},{'key':'update','value':function _0x12c60e(){var _0x317dd4=_0x236abd;if(this[_0x317dd4(0xe0)])return;this['_updateIng']=!![];if(this[_0x317dd4(0x12e)])this['windField']['update']();else{var _0x3e6588=this[_0x317dd4(0x1a6)]['getParticles']();this[_0x317dd4(0xdb)](_0x3e6588);}this['_updateIng']=![];}},{'key':'_drawLines','value':function _0x2bdc3d(_0x1662d1){var _0x28caee=_0x236abd;this['canvasContext']['globalCompositeOperation']='destination-in',this['canvasContext']['fillRect'](0x0,0x0,this['canvasWidth'],this[_0x28caee(0x118)]),this['canvasContext']['globalCompositeOperation']='lighter',this[_0x28caee(0x1a8)]['globalAlpha']=0.9,this['canvasContext']['beginPath'](),this[_0x28caee(0x1a8)]['lineWidth']=this[_0x28caee(0x111)],this['canvasContext'][_0x28caee(0x14f)]=this['color'];var _0x12f381=this['_map']['scene']['mode']!==Cesium[_0x28caee(0x14c)]['SCENE3D'];for(var _0x5cf12e=0x0,_0x24851c=_0x1662d1[_0x28caee(0x130)];_0x5cf12e<_0x24851c;_0x5cf12e++){var _0x113c9f=_0x1662d1[_0x5cf12e],_0x4b1944=this['_tomap'](_0x113c9f['lng'],_0x113c9f['lat'],_0x113c9f),_0x33659f=this['_tomap'](_0x113c9f['tlng'],_0x113c9f['tlat'],_0x113c9f);if(!_0x4b1944||!_0x33659f)continue;if(_0x12f381&&Math['abs'](_0x4b1944[0x0]-_0x33659f[0x0])>=this['canvasWidth'])continue;this['canvasContext']['moveTo'](_0x4b1944[0x0],_0x4b1944[0x1]),this['canvasContext']['lineTo'](_0x33659f[0x0],_0x33659f[0x1]);}this[_0x28caee(0x1a8)][_0x28caee(0x1a5)]();}},{'key':_0x236abd(0x113),'value':function _0x49696f(_0x137d8d,_0x1bb5a9,_0x21b93f){var _0x1ac9fc=_0x236abd,_0x5a6589=Cesium[_0x1ac9fc(0xe8)]['fromDegrees'](_0x137d8d,_0x1bb5a9,this['fixedHeight']),_0x5ad7b7=this[_0x1ac9fc(0x13f)]['scene'];if(_0x5ad7b7['mode']===Cesium['SceneMode']['SCENE3D']){var _0x5570b8=new Cesium[(_0x1ac9fc(0x19e))](_0x5ad7b7['globe']['ellipsoid'],_0x5ad7b7[_0x1ac9fc(0x169)]['positionWC']),_0x5b3a40=_0x5570b8['isPointVisible'](_0x5a6589);if(!_0x5b3a40)return _0x21b93f['age']=0x0,null;}var _0x315b4c=Cesium[_0x1ac9fc(0x108)]['wgs84ToWindowCoordinates'](this['_map']['scene'],_0x5a6589);return _0x315b4c?[_0x315b4c['x'],_0x315b4c['y']]:null;}},{'key':'clear','value':function _0x157764(){var _0x477cab=_0x236abd;this[_0x477cab(0x1a6)]['clear'](),delete this[_0x477cab(0x116)];}},{'key':'initWorker','value':function _0x5bab1a(){var _0x455a84=_0x236abd,_0x4848a7=this;this['worker']=new Worker(this[_0x455a84(0xc6)][_0x455a84(0x12e)]),this['worker']['onmessage']=function(_0x3ef531){_0x4848a7['_drawLines'](_0x3ef531['data']['particles']),_0x4848a7['_updateIng2']=![];},this['windField']={'init':function _0x5ee940(_0x2ffcea){var _0x397ebc=_0x455a84;_0x4848a7[_0x397ebc(0x12e)]['postMessage']({'type':'init','options':_0x2ffcea});},'setOptions':function _0x3683ab(_0x19f407){var _0x16ba15=_0x455a84;_0x4848a7['worker'][_0x16ba15(0x17b)]({'type':_0x16ba15(0xe7),'options':_0x19f407});},'setDate':function _0x49e739(_0x1aeb2f){var _0x503ff1=_0x455a84;_0x4848a7[_0x503ff1(0x12e)]['postMessage']({'type':_0x503ff1(0x18a),'data':_0x1aeb2f});},'update':function _0x27033e(){var _0x468db5=_0x455a84;if(_0x4848a7['_updateIng2'])return;_0x4848a7['_updateIng2']=!![],_0x4848a7['worker']['postMessage']({'type':_0x468db5(0xea)});},'clear':function _0x458231(){_0x4848a7['worker']['postMessage']({'type':'clear'});}},this['windField'][_0x455a84(0x17f)](this['options']);}}]),_0x5350c2;}(BaseLayer);mars3d__namespace['LayerUtil']['register'](_0x5a162f(0x135),CanvasWindLayer),mars3d__namespace['layer']['CanvasWindLayer']=CanvasWindLayer,mars3d__namespace['CanvasWindField']=CanvasWindField,mars3d__namespace['WindUtil']=WindUtil,exports['CanvasWindField']=CanvasWindField,exports[_0x5a162f(0xe6)]=CanvasWindLayer,exports['WindLayer']=WindLayer,exports[_0x5a162f(0x1a1)]=WindUtil,Object['defineProperty'](exports,'__esModule',{'value':!![]});
|
|
14
|
+
'use strict';var _0x521b0e=_0x4fd8;(function(_0x163a72,_0x2b63bc){var _0xf5419c=_0x4fd8,_0x1e327e=_0x163a72();while(!![]){try{var _0x42cc9a=-parseInt(_0xf5419c(0x1d2))/0x1*(-parseInt(_0xf5419c(0x242))/0x2)+parseInt(_0xf5419c(0x199))/0x3*(-parseInt(_0xf5419c(0x1db))/0x4)+-parseInt(_0xf5419c(0x224))/0x5*(-parseInt(_0xf5419c(0x16b))/0x6)+-parseInt(_0xf5419c(0x18c))/0x7+-parseInt(_0xf5419c(0x1ff))/0x8+-parseInt(_0xf5419c(0x251))/0x9+-parseInt(_0xf5419c(0x1bc))/0xa*(-parseInt(_0xf5419c(0x192))/0xb);if(_0x42cc9a===_0x2b63bc)break;else _0x1e327e['push'](_0x1e327e['shift']());}catch(_0x1b13a3){_0x1e327e['push'](_0x1e327e['shift']());}}}(_0x2bab,0xb08bd));function _interopNamespace(_0xebf88d){var _0x2f67dc=_0x4fd8;if(_0xebf88d&&_0xebf88d['__esModule'])return _0xebf88d;var _0x14e2c2=Object['create'](null);return _0xebf88d&&Object[_0x2f67dc(0x1e6)](_0xebf88d)['forEach'](function(_0x41eea7){if(_0x41eea7!=='default'){var _0x20224a=Object['getOwnPropertyDescriptor'](_0xebf88d,_0x41eea7);Object['defineProperty'](_0x14e2c2,_0x41eea7,_0x20224a['get']?_0x20224a:{'enumerable':!![],'get':function(){return _0xebf88d[_0x41eea7];}});}}),_0x14e2c2[_0x2f67dc(0x176)]=_0xebf88d,_0x14e2c2;}var mars3d__namespace=_interopNamespace(mars3d),Cesium$7=mars3d__namespace['Cesium'];function getU(_0x264768,_0x25574f){var _0x4ee3c3=_0x4fd8,_0x208c9e=_0x264768*Math['cos'](Cesium$7[_0x4ee3c3(0x204)]['toRadians'](_0x25574f));return _0x208c9e;}function getV(_0x273929,_0x3909d7){var _0x2744ce=_0x273929*Math['sin'](Cesium$7['Math']['toRadians'](_0x3909d7));return _0x2744ce;}function getSpeed(_0x42c72a,_0x4208b7){var _0xb0d4b4=Math['sqrt'](Math['pow'](_0x42c72a,0x2)+Math['pow'](_0x4208b7,0x2));return _0xb0d4b4;}function getDirection(_0x3e8664,_0x330771){var _0x2b41f1=_0x4fd8,_0x88f2d4=Cesium$7['Math'][_0x2b41f1(0x23e)](Math[_0x2b41f1(0x254)](_0x330771,_0x3e8664));return _0x88f2d4+=_0x88f2d4<0x0?0x168:0x0,_0x88f2d4;}var WindUtil={'__proto__':null,'getU':getU,'getV':getV,'getSpeed':getSpeed,'getDirection':getDirection};function ownKeys(_0x4f56e7,_0x3559eb){var _0x2e7814=_0x4fd8,_0x11727c=Object[_0x2e7814(0x1e6)](_0x4f56e7);if(Object['getOwnPropertySymbols']){var _0x150e92=Object[_0x2e7814(0x1d3)](_0x4f56e7);_0x3559eb&&(_0x150e92=_0x150e92['filter'](function(_0x56534d){var _0x12c723=_0x2e7814;return Object[_0x12c723(0x1c3)](_0x4f56e7,_0x56534d)[_0x12c723(0x21b)];})),_0x11727c['push'][_0x2e7814(0x243)](_0x11727c,_0x150e92);}return _0x11727c;}function _objectSpread2(_0x20228c){var _0x46bb62=_0x4fd8;for(var _0x334e8a=0x1;_0x334e8a<arguments[_0x46bb62(0x1e2)];_0x334e8a++){var _0x18d3fa=null!=arguments[_0x334e8a]?arguments[_0x334e8a]:{};_0x334e8a%0x2?ownKeys(Object(_0x18d3fa),!0x0)['forEach'](function(_0x325aea){_defineProperty(_0x20228c,_0x325aea,_0x18d3fa[_0x325aea]);}):Object['getOwnPropertyDescriptors']?Object[_0x46bb62(0x1cb)](_0x20228c,Object['getOwnPropertyDescriptors'](_0x18d3fa)):ownKeys(Object(_0x18d3fa))[_0x46bb62(0x24b)](function(_0x509afa){var _0x3dac36=_0x46bb62;Object['defineProperty'](_0x20228c,_0x509afa,Object[_0x3dac36(0x1c3)](_0x18d3fa,_0x509afa));});}return _0x20228c;}function _classCallCheck(_0x3286bc,_0x3e9257){if(!(_0x3286bc instanceof _0x3e9257))throw new TypeError('Cannot\x20call\x20a\x20class\x20as\x20a\x20function');}function _0x2bab(){var _0x3a5a5f=['undefined','framebuffer','tlng','umin','canrefresh','Pass','addPrimitives','frameTime','_addedHook','SceneTransforms','fromGeometry','show','mouseMove','absolute','windTextures','canvas','particles','7583344ZXpaqR','canvasWidth','commandToExecute','maxParticles','resize','Math','constructor','_onMap_preRenderEvent','Map','options','removeEventListener','wheel','_calc_speedRate','sham','DISABLE_LOG_DEPTH_FRAGMENT_WRITE','uniformMap','ShaderSource','PrimitiveType','textures','configurable','lev','blue','particlesRendering','latRange','ZERO','depthTest','none','currentTrails','enumerable','onmessage','PixelDatatype','TWO_PI','Appearance','now','age','_map','randomizeParticles','2110aUkHmZ','register','Compute','getOptions','randomBetween','update','random','cols','primitives','_removedHook','lng','createComputingPrimitives','left','Cartesian3','height','rows','mode','ymax','setData','fillRect','width','GeometryAttribute','BufferUsage','bind','vmax','EllipsoidalOccluder','toDegrees','updateViewerParameters','redraw','createElement','24xqnSQT','apply','_onMouseMoveEvent','OPAQUE','nextParticlesSpeed','removeChild','_canrefresh','vertexShaderSource','abs','forEach','_onMapWhellEvent','getFullscreenQuad','setPrototypeOf','particleHeight','color','12743730ncQMGp','0px','clear','atan2','globalAlpha','dimensions','globalCompositeOperation','container','key','mouseDown','camera','value','_pointerEvents','viewRectangleToLonLatRange','min','postProcessingPosition','rgb(206,255,255)','colorTable','mouse_down','ALWAYS','createWindTextures','Cesium','_speedRate','_onMouseDownEvent','10062UNnrdN','attributeLocations','xmin','Cartesian2','DEPTH_COMPONENT','setOptions','particlesNumber','strokeStyle','Color','windData','style','default','globeBoundingSphere','colors','nextTrails','dropRate','WindLayer','from','push','destroy','object','canvasResize','xmax','Framebuffer','PrimitiveCollection','north','nextTrailsColor','construct','fromDegrees','ymin','particlesWind','vdata','pointerEvents','8600473Dnjmtg','createFramebuffer','100%','lon','context','worker','11YnsKmk','scene','_drawLines','defined','RGBA','trails','SCENE3D','1827SgsbGy','rawRenderState','clearCommand','lineWidth','segments','particlesComputing','TRIANGLES','requestAnimationFrame','maxAge','particlesTextureSize','wind','Draw','vertexArray','_randomParticle','viewerParameters','lat','windField','animateFrame','fadeOpacity','umax','clampToLatitudeRange','appendChild','createCommand','_data','data','canvasHeight','CanvasWindField','pixelSize','currentParticlesPosition','_onMouseUpEvent','slice','uniform\x20sampler2D\x20colorTable;\x0a\x0avarying\x20float\x20speedNormalization;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20gl_FragColor\x20=\x20texture2D(colorTable,\x20vec2(speedNormalization,\x200.0));\x0a}','THREE_PI_OVER_TWO','postProcessingSpeed','tlat','43302970bnGBkB','BoundingSphere','globe','unbindEvent','layer','drawingBufferHeight','EventType','getOwnPropertyDescriptor','preExecute','TextureMagnificationFilter','_tomap','particleSystem','speedFactor','ShaderProgram','visible','defineProperties','framebuffers','toGridXY','createRawRenderState','getUVByXY','max','_calcUV','38819azbaqR','getOwnPropertySymbols','particlesTextures','defineProperty','attribute\x20vec3\x20position;\x0d\x0aattribute\x20vec2\x20st;\x0d\x0a\x0d\x0avarying\x20vec2\x20textureCoordinate;\x0d\x0a\x0d\x0avoid\x20main()\x20{\x0d\x0a\x20\x20\x20\x20textureCoordinate\x20=\x20st;\x0d\x0a\x20\x20\x20\x20gl_Position\x20=\x20vec4(position,\x201.0);\x0d\x0a}','createTexture','FLOAT','clientWidth','mouseUp','7804bFViyu','udata','canvasContext','array','_setOptionsHook','WindUtil','GeometryAttributes','length','SceneMode','autoClear','createRenderingTextures','keys','mod','setDate','ClearCommand','initWorker','refreshTimer','reverse','_mountedHook'];_0x2bab=function(){return _0x3a5a5f;};return _0x2bab();}function _defineProperties(_0x5e41a5,_0x2b0f3b){var _0x537ded=_0x4fd8;for(var _0xe81942=0x0;_0xe81942<_0x2b0f3b['length'];_0xe81942++){var _0x4d4ee7=_0x2b0f3b[_0xe81942];_0x4d4ee7['enumerable']=_0x4d4ee7['enumerable']||![],_0x4d4ee7[_0x537ded(0x212)]=!![];if(_0x537ded(0x15e)in _0x4d4ee7)_0x4d4ee7['writable']=!![];Object[_0x537ded(0x1d5)](_0x5e41a5,_0x4d4ee7[_0x537ded(0x15b)],_0x4d4ee7);}}function _createClass(_0x12da64,_0x15298d,_0x38622c){if(_0x15298d)_defineProperties(_0x12da64['prototype'],_0x15298d);if(_0x38622c)_defineProperties(_0x12da64,_0x38622c);return Object['defineProperty'](_0x12da64,'prototype',{'writable':![]}),_0x12da64;}function _defineProperty(_0x5184e1,_0x2132d3,_0x134352){var _0x3c681e=_0x4fd8;return _0x2132d3 in _0x5184e1?Object[_0x3c681e(0x1d5)](_0x5184e1,_0x2132d3,{'value':_0x134352,'enumerable':!![],'configurable':!![],'writable':!![]}):_0x5184e1[_0x2132d3]=_0x134352,_0x5184e1;}function _inherits(_0x5512a1,_0x312e34){if(typeof _0x312e34!=='function'&&_0x312e34!==null)throw new TypeError('Super\x20expression\x20must\x20either\x20be\x20null\x20or\x20a\x20function');_0x5512a1['prototype']=Object['create'](_0x312e34&&_0x312e34['prototype'],{'constructor':{'value':_0x5512a1,'writable':!![],'configurable':!![]}}),Object['defineProperty'](_0x5512a1,'prototype',{'writable':![]});if(_0x312e34)_setPrototypeOf(_0x5512a1,_0x312e34);}function _getPrototypeOf(_0x12ff55){var _0x272c97=_0x4fd8;return _getPrototypeOf=Object[_0x272c97(0x24e)]?Object['getPrototypeOf']['bind']():function _0x1ca628(_0x9fd765){return _0x9fd765['__proto__']||Object['getPrototypeOf'](_0x9fd765);},_getPrototypeOf(_0x12ff55);}function _setPrototypeOf(_0x463038,_0x4aef33){var _0x232faa=_0x4fd8;return _setPrototypeOf=Object[_0x232faa(0x24e)]?Object['setPrototypeOf'][_0x232faa(0x23b)]():function _0x5b5e45(_0x32ebc6,_0x3e0308){return _0x32ebc6['__proto__']=_0x3e0308,_0x32ebc6;},_setPrototypeOf(_0x463038,_0x4aef33);}function _isNativeReflectConstruct(){var _0x215db2=_0x4fd8;if(typeof Reflect===_0x215db2(0x1ee)||!Reflect['construct'])return![];if(Reflect['construct'][_0x215db2(0x20c)])return![];if(typeof Proxy==='function')return!![];try{return Boolean['prototype']['valueOf']['call'](Reflect['construct'](Boolean,[],function(){})),!![];}catch(_0x549d89){return![];}}function _assertThisInitialized(_0x4f6230){if(_0x4f6230===void 0x0)throw new ReferenceError('this\x20hasn\x27t\x20been\x20initialised\x20-\x20super()\x20hasn\x27t\x20been\x20called');return _0x4f6230;}function _possibleConstructorReturn(_0x3a7764,_0x20afa2){var _0x4aa6d9=_0x4fd8;if(_0x20afa2&&(typeof _0x20afa2===_0x4aa6d9(0x17f)||typeof _0x20afa2==='function'))return _0x20afa2;else{if(_0x20afa2!==void 0x0)throw new TypeError('Derived\x20constructors\x20may\x20only\x20return\x20object\x20or\x20undefined');}return _assertThisInitialized(_0x3a7764);}function _createSuper(_0x387abd){var _0x5cbd24=_isNativeReflectConstruct();return function _0x5d78e8(){var _0x139dba=_0x4fd8,_0x59468c=_getPrototypeOf(_0x387abd),_0x38b59b;if(_0x5cbd24){var _0x570c57=_getPrototypeOf(this)['constructor'];_0x38b59b=Reflect[_0x139dba(0x186)](_0x59468c,arguments,_0x570c57);}else _0x38b59b=_0x59468c['apply'](this,arguments);return _possibleConstructorReturn(this,_0x38b59b);};}function _toConsumableArray(_0x3f10b5){return _arrayWithoutHoles(_0x3f10b5)||_iterableToArray(_0x3f10b5)||_unsupportedIterableToArray(_0x3f10b5)||_nonIterableSpread();}function _arrayWithoutHoles(_0x42014f){if(Array['isArray'](_0x42014f))return _arrayLikeToArray(_0x42014f);}function _iterableToArray(_0x388d50){var _0x55ccbf=_0x4fd8;if(typeof Symbol!==_0x55ccbf(0x1ee)&&_0x388d50[Symbol['iterator']]!=null||_0x388d50['@@iterator']!=null)return Array[_0x55ccbf(0x17c)](_0x388d50);}function _unsupportedIterableToArray(_0x11510d,_0x291966){var _0x106f85=_0x4fd8;if(!_0x11510d)return;if(typeof _0x11510d==='string')return _arrayLikeToArray(_0x11510d,_0x291966);var _0x196095=Object['prototype']['toString']['call'](_0x11510d)[_0x106f85(0x1b7)](0x8,-0x1);if(_0x196095==='Object'&&_0x11510d['constructor'])_0x196095=_0x11510d[_0x106f85(0x205)]['name'];if(_0x196095===_0x106f85(0x207)||_0x196095==='Set')return Array[_0x106f85(0x17c)](_0x11510d);if(_0x196095==='Arguments'||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/['test'](_0x196095))return _arrayLikeToArray(_0x11510d,_0x291966);}function _arrayLikeToArray(_0x5d4ade,_0x4a38a5){if(_0x4a38a5==null||_0x4a38a5>_0x5d4ade['length'])_0x4a38a5=_0x5d4ade['length'];for(var _0x36097e=0x0,_0x98f63b=new Array(_0x4a38a5);_0x36097e<_0x4a38a5;_0x36097e++)_0x98f63b[_0x36097e]=_0x5d4ade[_0x36097e];return _0x98f63b;}function _nonIterableSpread(){throw new TypeError('Invalid\x20attempt\x20to\x20spread\x20non-iterable\x20instance.\x0aIn\x20order\x20to\x20be\x20iterable,\x20non-array\x20objects\x20must\x20have\x20a\x20[Symbol.iterator]()\x20method.');}var Cesium$6=mars3d__namespace['Cesium'],CustomPrimitive=(function(){var _0x4eaf6c=_0x4fd8;function _0x472bda(_0x276de7){var _0x18831a=_0x4fd8,_0xc32c9c;_classCallCheck(this,_0x472bda),this['commandType']=_0x276de7['commandType'],this['geometry']=_0x276de7['geometry'],this['attributeLocations']=_0x276de7[_0x18831a(0x16c)],this['primitiveType']=_0x276de7['primitiveType'],this['uniformMap']=_0x276de7['uniformMap'],this['vertexShaderSource']=_0x276de7['vertexShaderSource'],this['fragmentShaderSource']=_0x276de7['fragmentShaderSource'],this['rawRenderState']=_0x276de7['rawRenderState'],this['framebuffer']=_0x276de7['framebuffer'],this['outputTexture']=_0x276de7['outputTexture'],this['autoClear']=(_0xc32c9c=_0x276de7['autoClear'])!==null&&_0xc32c9c!==void 0x0?_0xc32c9c:![],this['preExecute']=_0x276de7[_0x18831a(0x1c4)],this['show']=!![],this['commandToExecute']=undefined,this[_0x18831a(0x19b)]=undefined,this[_0x18831a(0x1e4)]&&(this['clearCommand']=new Cesium$6[(_0x18831a(0x1e9))]({'color':new Cesium$6[(_0x18831a(0x173))](0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this[_0x18831a(0x1ef)],'pass':Cesium$6[_0x18831a(0x1f3)]['OPAQUE']}));}return _createClass(_0x472bda,[{'key':'createCommand','value':function _0x10c251(_0x249d65){var _0x3ea939=_0x4fd8;switch(this['commandType']){case'Draw':{var _0x171aa6=Cesium$6['VertexArray'][_0x3ea939(0x1f8)]({'context':_0x249d65,'geometry':this['geometry'],'attributeLocations':this['attributeLocations'],'bufferUsage':Cesium$6['BufferUsage']['STATIC_DRAW']}),_0x590492=Cesium$6[_0x3ea939(0x1c9)]['fromCache']({'context':_0x249d65,'attributeLocations':this[_0x3ea939(0x16c)],'vertexShaderSource':this[_0x3ea939(0x249)],'fragmentShaderSource':this['fragmentShaderSource']}),_0x156c9c=Cesium$6['RenderState']['fromCache'](this[_0x3ea939(0x19a)]);return new Cesium$6['DrawCommand']({'primitiveType':this['primitiveType'],'shaderProgram':_0x590492,'vertexArray':_0x171aa6,'modelMatrix':Cesium$6['Matrix4']['IDENTITY'],'renderState':_0x156c9c,'uniformMap':this[_0x3ea939(0x20e)],'castShadows':![],'receiveShadows':![],'framebuffer':this['framebuffer'],'pass':Cesium$6['Pass']['OPAQUE'],'pickOnly':!![],'owner':this});}case'Compute':{return new Cesium$6['ComputeCommand']({'owner':this,'fragmentShaderSource':this['fragmentShaderSource'],'uniformMap':this[_0x3ea939(0x20e)],'outputTexture':this['outputTexture'],'persists':!![]});}}}},{'key':'setGeometry','value':function _0x152a5d(_0x325f3b,_0x31e76e){this['geometry']=_0x31e76e;var _0x168164=Cesium$6['VertexArray']['fromGeometry']({'context':_0x325f3b,'geometry':this['geometry'],'attributeLocations':this['attributeLocations'],'bufferUsage':Cesium$6['BufferUsage']['STATIC_DRAW']});this['commandToExecute']['vertexArray']=_0x168164;}},{'key':'update','value':function _0x4c2811(_0x210f34){var _0x1f5ad3=_0x4fd8;if(!this['show'])return;if(_0x210f34[_0x1f5ad3(0x234)]!==Cesium$6[_0x1f5ad3(0x1e3)]['SCENE3D'])return;!Cesium$6['defined'](this[_0x1f5ad3(0x201)])&&(this['commandToExecute']=this[_0x1f5ad3(0x1af)](_0x210f34[_0x1f5ad3(0x190)])),Cesium$6[_0x1f5ad3(0x195)](this[_0x1f5ad3(0x1c4)])&&this[_0x1f5ad3(0x1c4)](),Cesium$6['defined'](this['clearCommand'])&&_0x210f34['commandList']['push'](this['clearCommand']),_0x210f34['commandList']['push'](this['commandToExecute']);}},{'key':'isDestroyed','value':function _0x3a659e(){return![];}},{'key':_0x4eaf6c(0x17e),'value':function _0x54fc0d(){var _0x1b4354=_0x4eaf6c;if(this['clearCommand']){var _0x3575d0,_0x46a34c;(_0x3575d0=this['clearCommand'])!==null&&_0x3575d0!==void 0x0&&_0x3575d0['vertexArray']&&this[_0x1b4354(0x19b)][_0x1b4354(0x1a5)]['destroy'](),(_0x46a34c=this['clearCommand'])!==null&&_0x46a34c!==void 0x0&&_0x46a34c['shaderProgram']&&this['clearCommand']['shaderProgram']['destroy'](),delete this['clearCommand'];}return this['commandToExecute']&&(this['commandToExecute'][_0x1b4354(0x1a5)]&&this['commandToExecute'][_0x1b4354(0x1a5)]['destroy'](),this[_0x1b4354(0x201)]['shaderProgram']&&this[_0x1b4354(0x201)]['shaderProgram']['destroy'](),delete this[_0x1b4354(0x201)]),Cesium$6['destroyObject'](this);}}]),_0x472bda;}()),Cesium$5=mars3d__namespace['Cesium'],Util=(function(){var _0x224bd8=function _0x2b2db0(){var _0x33554e=_0x4fd8,_0x9fe4d5=new Cesium$5['Geometry']({'attributes':new Cesium$5['GeometryAttributes']({'position':new Cesium$5[(_0x33554e(0x239))]({'componentDatatype':Cesium$5['ComponentDatatype']['FLOAT'],'componentsPerAttribute':0x3,'values':new Float32Array([-0x1,-0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0,-0x1,0x1,0x0])}),'st':new Cesium$5['GeometryAttribute']({'componentDatatype':Cesium$5['ComponentDatatype']['FLOAT'],'componentsPerAttribute':0x2,'values':new Float32Array([0x0,0x0,0x1,0x0,0x1,0x1,0x0,0x1])})}),'indices':new Uint32Array([0x3,0x2,0x0,0x0,0x2,0x1])});return _0x9fe4d5;},_0x4f2f70=function _0x38eaac(_0x486682,_0x18c12d){var _0x12cd3a=_0x4fd8;if(Cesium$5[_0x12cd3a(0x195)](_0x18c12d)){var _0x2034bb={};_0x2034bb['arrayBufferView']=_0x18c12d,_0x486682['source']=_0x2034bb;}var _0x4b1acd=new Cesium$5['Texture'](_0x486682);return _0x4b1acd;},_0x4c8a92=function _0x1fb82e(_0x2fac26,_0x30ba33,_0x2c4de3){var _0x526f9a=_0x4fd8,_0x5e06b6=new Cesium$5[(_0x526f9a(0x182))]({'context':_0x2fac26,'colorTextures':[_0x30ba33],'depthTexture':_0x2c4de3});return _0x5e06b6;},_0x516a14=function _0x47abac(_0x5c03f7){var _0x3dffce=_0x4fd8,_0x2b13d8=!![],_0x5dbc69=![],_0x5247e3={'viewport':_0x5c03f7['viewport'],'depthTest':_0x5c03f7[_0x3dffce(0x218)],'depthMask':_0x5c03f7['depthMask'],'blending':_0x5c03f7['blending']},_0x26282c=Cesium$5[_0x3dffce(0x21f)]['getDefaultRenderState'](_0x2b13d8,_0x5dbc69,_0x5247e3);return _0x26282c;},_0x29e2de=function _0x4de79a(_0x37c73d){var _0x28dbdb=_0x4fd8,_0x16060b={},_0x107242=Cesium$5[_0x28dbdb(0x204)]['mod'](_0x37c73d['west'],Cesium$5[_0x28dbdb(0x204)]['TWO_PI']),_0x467b19=Cesium$5[_0x28dbdb(0x204)][_0x28dbdb(0x1e7)](_0x37c73d['east'],Cesium$5[_0x28dbdb(0x204)][_0x28dbdb(0x21e)]),_0x22865a=_0x37c73d[_0x28dbdb(0x238)],_0x8c8955,_0x41f40a;_0x22865a>Cesium$5['Math'][_0x28dbdb(0x1b9)]?(_0x8c8955=0x0,_0x41f40a=Cesium$5[_0x28dbdb(0x204)]['TWO_PI']):_0x467b19-_0x107242<_0x22865a?(_0x8c8955=_0x107242,_0x41f40a=_0x107242+_0x22865a):(_0x8c8955=_0x107242,_0x41f40a=_0x467b19);_0x16060b['lon']={'min':Cesium$5['Math'][_0x28dbdb(0x23e)](_0x8c8955),'max':Cesium$5[_0x28dbdb(0x204)]['toDegrees'](_0x41f40a)};var _0x151a9e=_0x37c73d['south'],_0x2728d5=_0x37c73d[_0x28dbdb(0x184)],_0x59b321=_0x37c73d['height'],_0x190642=_0x59b321>Cesium$5[_0x28dbdb(0x204)]['PI']/0xc?_0x59b321/0x2:0x0,_0x2c47d6=Cesium$5['Math']['clampToLatitudeRange'](_0x151a9e-_0x190642),_0x4cb456=Cesium$5[_0x28dbdb(0x204)][_0x28dbdb(0x1ad)](_0x2728d5+_0x190642);return _0x2c47d6<-Cesium$5['Math']['PI_OVER_THREE']&&(_0x2c47d6=-Cesium$5['Math']['PI_OVER_TWO']),_0x4cb456>Cesium$5['Math']['PI_OVER_THREE']&&(_0x4cb456=Cesium$5[_0x28dbdb(0x204)]['PI_OVER_TWO']),_0x16060b['lat']={'min':Cesium$5['Math'][_0x28dbdb(0x23e)](_0x2c47d6),'max':Cesium$5['Math'][_0x28dbdb(0x23e)](_0x4cb456)},_0x16060b;};return{'getFullscreenQuad':_0x224bd8,'createTexture':_0x4f2f70,'createFramebuffer':_0x4c8a92,'createRawRenderState':_0x516a14,'viewRectangleToLonLatRange':_0x29e2de};}()),segmentDraw_vert='attribute\x20vec2\x20st;\x0a//\x20it\x20is\x20not\x20normal\x20itself,\x20but\x20used\x20to\x20control\x20normal\x0aattribute\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\x0avarying\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\x20\x0a\x20\x20\x20\x20float\x20a\x20=\x206378137.0;\x20//\x20Semi-major\x20axis\x20\x0a\x20\x20\x20\x20float\x20b\x20=\x206356752.3142;\x20//\x20Semi-minor\x20axis\x20\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=\x20texture2D(currentParticlesPosition,\x20particleIndex).rgb;\x0a\x20\x20\x20\x20vec4\x20nextPosition\x20=\x20texture2D(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=\x20texture2D(postProcessingSpeed,\x20particleIndex).a;\x0a}',segmentDraw_frag=_0x521b0e(0x1b8),fullscreen_vert=_0x521b0e(0x1d6),trailDraw_frag='uniform\x20sampler2D\x20segmentsColorTexture;\x0d\x0auniform\x20sampler2D\x20segmentsDepthTexture;\x0d\x0a\x0d\x0auniform\x20sampler2D\x20currentTrailsColor;\x0d\x0auniform\x20sampler2D\x20trailsDepthTexture;\x0d\x0a\x0d\x0auniform\x20float\x20fadeOpacity;\x0d\x0a\x0d\x0avarying\x20vec2\x20textureCoordinate;\x0d\x0a\x0d\x0avoid\x20main()\x20{\x0d\x0a\x20\x20\x20\x20vec4\x20pointsColor\x20=\x20texture2D(segmentsColorTexture,\x20textureCoordinate);\x0d\x0a\x20\x20\x20\x20vec4\x20trailsColor\x20=\x20texture2D(currentTrailsColor,\x20textureCoordinate);\x0d\x0a\x0d\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\x0d\x0a\x0d\x0a\x20\x20\x20\x20float\x20pointsDepth\x20=\x20texture2D(segmentsDepthTexture,\x20textureCoordinate).r;\x0d\x0a\x20\x20\x20\x20float\x20trailsDepth\x20=\x20texture2D(trailsDepthTexture,\x20textureCoordinate).r;\x0d\x0a\x20\x20\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture2D(czm_globeDepthTexture,\x20textureCoordinate));\x0d\x0a\x0d\x0a\x20\x20\x20\x20gl_FragColor\x20=\x20vec4(0.0);\x0d\x0a\x20\x20\x20\x20if\x20(pointsDepth\x20<\x20globeDepth)\x20{\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20gl_FragColor\x20+\x20pointsColor;\x0d\x0a\x20\x20\x20\x20}\x0d\x0a\x20\x20\x20\x20if\x20(trailsDepth\x20<\x20globeDepth)\x20{\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20gl_FragColor\x20+\x20trailsColor;\x0d\x0a\x20\x20\x20\x20}\x0d\x0a\x20\x20\x20\x20gl_FragDepthEXT\x20=\x20min(pointsDepth,\x20trailsDepth);\x0d\x0a}',screenDraw_frag='uniform\x20sampler2D\x20trailsColorTexture;\x0d\x0auniform\x20sampler2D\x20trailsDepthTexture;\x0d\x0a\x0d\x0avarying\x20vec2\x20textureCoordinate;\x0d\x0a\x0d\x0avoid\x20main()\x20{\x0d\x0a\x20\x20\x20\x20vec4\x20trailsColor\x20=\x20texture2D(trailsColorTexture,\x20textureCoordinate);\x0d\x0a\x20\x20\x20\x20float\x20trailsDepth\x20=\x20texture2D(trailsDepthTexture,\x20textureCoordinate).r;\x0d\x0a\x20\x20\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture2D(czm_globeDepthTexture,\x20textureCoordinate));\x0d\x0a\x0d\x0a\x20\x20\x20\x20if\x20(trailsDepth\x20<\x20globeDepth)\x20{\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20trailsColor;\x0d\x0a\x20\x20\x20\x20}\x20else\x20{\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20vec4(0.0);\x0d\x0a\x20\x20\x20\x20}\x0d\x0a}',Cesium$4=mars3d__namespace[_0x521b0e(0x168)],ParticlesRendering=(function(){var _0x25c3c8=_0x521b0e;function _0x58e3ba(_0x32a19a,_0x2b90ae,_0x54b2cb,_0x1fa963,_0x474f51){_classCallCheck(this,_0x58e3ba),this['createRenderingTextures'](_0x32a19a,_0x2b90ae,_0x54b2cb['colors']),this['createRenderingFramebuffers'](_0x32a19a),this['createRenderingPrimitives'](_0x32a19a,_0x54b2cb,_0x1fa963,_0x474f51);}return _createClass(_0x58e3ba,[{'key':_0x25c3c8(0x1e5),'value':function _0x4b4c17(_0x23148e,_0x5f1565,_0x1d7360){var _0x27209b=_0x25c3c8,_0x350ae6={'context':_0x23148e,'width':_0x23148e['drawingBufferWidth'],'height':_0x23148e['drawingBufferHeight'],'pixelFormat':Cesium$4['PixelFormat'][_0x27209b(0x196)],'pixelDatatype':Cesium$4['PixelDatatype']['UNSIGNED_BYTE']},_0x253b32={'context':_0x23148e,'width':_0x23148e['drawingBufferWidth'],'height':_0x23148e[_0x27209b(0x1c1)],'pixelFormat':Cesium$4['PixelFormat'][_0x27209b(0x16f)],'pixelDatatype':Cesium$4['PixelDatatype']['UNSIGNED_INT']},_0x4781e3=_0x1d7360['length'],_0xe654a6=new Float32Array(_0x4781e3*0x3);for(var _0x2fc28e=0x0;_0x2fc28e<_0x4781e3;_0x2fc28e++){var _0x25240b=Cesium$4['Color']['fromCssColorString'](_0x1d7360[_0x2fc28e]);_0xe654a6[0x3*_0x2fc28e]=_0x25240b['red'],_0xe654a6[0x3*_0x2fc28e+0x1]=_0x25240b['green'],_0xe654a6[0x3*_0x2fc28e+0x2]=_0x25240b[_0x27209b(0x214)];}var _0x8a397c={'context':_0x23148e,'width':_0x4781e3,'height':0x1,'pixelFormat':Cesium$4['PixelFormat']['RGB'],'pixelDatatype':Cesium$4['PixelDatatype']['FLOAT'],'sampler':new Cesium$4['Sampler']({'minificationFilter':Cesium$4['TextureMinificationFilter']['LINEAR'],'magnificationFilter':Cesium$4['TextureMagnificationFilter']['LINEAR']})};this['textures']={'segmentsColor':Util['createTexture'](_0x350ae6),'segmentsDepth':Util[_0x27209b(0x1d7)](_0x253b32),'currentTrailsColor':Util['createTexture'](_0x350ae6),'currentTrailsDepth':Util['createTexture'](_0x253b32),'nextTrailsColor':Util['createTexture'](_0x350ae6),'nextTrailsDepth':Util['createTexture'](_0x253b32),'colorTable':Util['createTexture'](_0x8a397c,_0xe654a6)};}},{'key':'createRenderingFramebuffers','value':function _0x4f4d61(_0x343516){var _0x9fa44=_0x25c3c8;this['framebuffers']={'segments':Util['createFramebuffer'](_0x343516,this['textures']['segmentsColor'],this['textures']['segmentsDepth']),'currentTrails':Util[_0x9fa44(0x18d)](_0x343516,this['textures']['currentTrailsColor'],this['textures']['currentTrailsDepth']),'nextTrails':Util['createFramebuffer'](_0x343516,this[_0x9fa44(0x211)][_0x9fa44(0x185)],this[_0x9fa44(0x211)]['nextTrailsDepth'])};}},{'key':'createSegmentsGeometry','value':function _0x25a242(_0x329e75){var _0x35b0f0=_0x25c3c8,_0x11b23c=0x4,_0x25e8a4=[];for(var _0x9929da=0x0;_0x9929da<_0x329e75['particlesTextureSize'];_0x9929da++){for(var _0x471187=0x0;_0x471187<_0x329e75['particlesTextureSize'];_0x471187++){for(var _0x38dc8f=0x0;_0x38dc8f<_0x11b23c;_0x38dc8f++){_0x25e8a4['push'](_0x9929da/_0x329e75[_0x35b0f0(0x1a2)]),_0x25e8a4['push'](_0x471187/_0x329e75['particlesTextureSize']);}}}_0x25e8a4=new Float32Array(_0x25e8a4);var _0x430c9d=[],_0x1fca09=[-0x1,0x1],_0x1d64ea=[-0x1,0x1];for(var _0x2e30f2=0x0;_0x2e30f2<_0x329e75['maxParticles'];_0x2e30f2++){for(var _0x5c7f6e=0x0;_0x5c7f6e<_0x11b23c/0x2;_0x5c7f6e++){for(var _0x20a485=0x0;_0x20a485<_0x11b23c/0x2;_0x20a485++){_0x430c9d['push'](_0x1fca09[_0x5c7f6e]),_0x430c9d['push'](_0x1d64ea[_0x20a485]),_0x430c9d['push'](0x0);}}}_0x430c9d=new Float32Array(_0x430c9d);var _0x27e8ed=0x6*_0x329e75['maxParticles'],_0x442c52=new Uint32Array(_0x27e8ed);for(var _0x450d49=0x0,_0x3d2216=0x0,_0x3b5b97=0x0;_0x450d49<_0x329e75['maxParticles'];_0x450d49++){_0x442c52[_0x3d2216++]=_0x3b5b97+0x0,_0x442c52[_0x3d2216++]=_0x3b5b97+0x1,_0x442c52[_0x3d2216++]=_0x3b5b97+0x2,_0x442c52[_0x3d2216++]=_0x3b5b97+0x2,_0x442c52[_0x3d2216++]=_0x3b5b97+0x1,_0x442c52[_0x3d2216++]=_0x3b5b97+0x3,_0x3b5b97+=0x4;}var _0xdff5ed=new Cesium$4['Geometry']({'attributes':new Cesium$4[(_0x35b0f0(0x1e1))]({'st':new Cesium$4['GeometryAttribute']({'componentDatatype':Cesium$4['ComponentDatatype']['FLOAT'],'componentsPerAttribute':0x2,'values':_0x25e8a4}),'normal':new Cesium$4[(_0x35b0f0(0x239))]({'componentDatatype':Cesium$4['ComponentDatatype']['FLOAT'],'componentsPerAttribute':0x3,'values':_0x430c9d})}),'indices':_0x442c52});return _0xdff5ed;}},{'key':'createRenderingPrimitives','value':function _0x506e06(_0x3ba9c2,_0x304b12,_0x113fcf,_0x2ff6cc){var _0x22d73c=_0x25c3c8,_0x304476=this;this['primitives']={'segments':new CustomPrimitive({'commandType':'Draw','attributeLocations':{'st':0x0,'normal':0x1},'geometry':this['createSegmentsGeometry'](_0x304b12),'primitiveType':Cesium$4[_0x22d73c(0x210)]['TRIANGLES'],'uniformMap':{'currentParticlesPosition':function _0x14a2c1(){return _0x2ff6cc['particlesTextures']['currentParticlesPosition'];},'postProcessingPosition':function _0xfa2e2(){return _0x2ff6cc['particlesTextures']['postProcessingPosition'];},'postProcessingSpeed':function _0x354bbe(){return _0x2ff6cc['particlesTextures']['postProcessingSpeed'];},'colorTable':function _0x307e0a(){return _0x304476['textures']['colorTable'];},'aspect':function _0x1135c9(){var _0xd57ed=_0x22d73c;return _0x3ba9c2['drawingBufferWidth']/_0x3ba9c2[_0xd57ed(0x1c1)];},'pixelSize':function _0x57de7c(){return _0x113fcf['pixelSize'];},'lineWidth':function _0x1c9039(){var _0x15c3bf=_0x22d73c;return _0x304b12[_0x15c3bf(0x19c)];},'particleHeight':function _0x1654cc(){var _0x18b027=_0x22d73c;return _0x304b12[_0x18b027(0x24f)];}},'vertexShaderSource':new Cesium$4[(_0x22d73c(0x20f))]({'sources':[segmentDraw_vert]}),'fragmentShaderSource':new Cesium$4['ShaderSource']({'sources':[segmentDraw_frag]}),'rawRenderState':Util['createRawRenderState']({'viewport':undefined,'depthTest':{'enabled':!![]},'depthMask':!![]}),'framebuffer':this[_0x22d73c(0x1cc)]['segments'],'autoClear':!![]}),'trails':new CustomPrimitive({'commandType':'Draw','attributeLocations':{'position':0x0,'st':0x1},'geometry':Util['getFullscreenQuad'](),'primitiveType':Cesium$4['PrimitiveType'][_0x22d73c(0x19f)],'uniformMap':{'segmentsColorTexture':function _0x482468(){return _0x304476['textures']['segmentsColor'];},'segmentsDepthTexture':function _0x26322e(){return _0x304476['textures']['segmentsDepth'];},'currentTrailsColor':function _0x2be106(){var _0x1e1666=_0x22d73c;return _0x304476[_0x1e1666(0x1cc)][_0x1e1666(0x21a)]['getColorTexture'](0x0);},'trailsDepthTexture':function _0x5b6b7d(){var _0x1b25bc=_0x22d73c;return _0x304476[_0x1b25bc(0x1cc)]['currentTrails']['depthTexture'];},'fadeOpacity':function _0x4d5243(){return _0x304b12['fadeOpacity'];}},'vertexShaderSource':new Cesium$4[(_0x22d73c(0x20f))]({'defines':['DISABLE_GL_POSITION_LOG_DEPTH'],'sources':[fullscreen_vert]}),'fragmentShaderSource':new Cesium$4['ShaderSource']({'defines':[_0x22d73c(0x20d)],'sources':[trailDraw_frag]}),'rawRenderState':Util[_0x22d73c(0x1ce)]({'viewport':undefined,'depthTest':{'enabled':!![],'func':Cesium$4['DepthFunction'][_0x22d73c(0x166)]},'depthMask':!![]}),'framebuffer':this['framebuffers']['nextTrails'],'autoClear':!![],'preExecute':function _0x241dbe(){var _0xb4ae5e=_0x22d73c,_0x7ab791=_0x304476['framebuffers'][_0xb4ae5e(0x21a)];_0x304476['framebuffers'][_0xb4ae5e(0x21a)]=_0x304476['framebuffers'][_0xb4ae5e(0x179)],_0x304476[_0xb4ae5e(0x1cc)][_0xb4ae5e(0x179)]=_0x7ab791,_0x304476[_0xb4ae5e(0x22c)][_0xb4ae5e(0x197)]['commandToExecute']['framebuffer']=_0x304476['framebuffers'][_0xb4ae5e(0x179)],_0x304476['primitives']['trails']['clearCommand']['framebuffer']=_0x304476[_0xb4ae5e(0x1cc)]['nextTrails'];}}),'screen':new CustomPrimitive({'commandType':_0x22d73c(0x1a4),'attributeLocations':{'position':0x0,'st':0x1},'geometry':Util[_0x22d73c(0x24d)](),'primitiveType':Cesium$4[_0x22d73c(0x210)][_0x22d73c(0x19f)],'uniformMap':{'trailsColorTexture':function _0x2601dc(){return _0x304476['framebuffers']['nextTrails']['getColorTexture'](0x0);},'trailsDepthTexture':function _0x167dcc(){var _0x350cbe=_0x22d73c;return _0x304476[_0x350cbe(0x1cc)]['nextTrails']['depthTexture'];}},'vertexShaderSource':new Cesium$4['ShaderSource']({'defines':['DISABLE_GL_POSITION_LOG_DEPTH'],'sources':[fullscreen_vert]}),'fragmentShaderSource':new Cesium$4[(_0x22d73c(0x20f))]({'defines':['DISABLE_LOG_DEPTH_FRAGMENT_WRITE'],'sources':[screenDraw_frag]}),'rawRenderState':Util[_0x22d73c(0x1ce)]({'viewport':undefined,'depthTest':{'enabled':![]},'depthMask':!![],'blending':{'enabled':!![]}}),'framebuffer':undefined})};}}]),_0x58e3ba;}()),getWind_frag='//\x20the\x20size\x20of\x20UV\x20textures:\x20width\x20=\x20lon,\x20height\x20=\x20lat*lev\x0auniform\x20sampler2D\x20U;\x20//\x20eastward\x20wind\x20\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\x0avarying\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=\x20texture2D(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=\x20texture2D(currentParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec3\x20windVector\x20=\x20bicubic(lonLatLev);\x0a\x20\x20\x20\x20gl_FragColor\x20=\x20vec4(windVector,\x200.0);\x0a}',updateSpeed_frag='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\x0avarying\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=\x20texture2D(currentParticlesSpeed,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec3\x20windVector\x20=\x20texture2D(particlesWind,\x20v_textureCoordinates).rgb;\x0a\x0a\x20\x20\x20\x20vec4\x20nextSpeed\x20=\x20vec4(speedFactor\x20*\x20pixelSize\x20*\x20windVector,\x20calculateWindNorm(windVector));\x0a\x20\x20\x20\x20gl_FragColor\x20=\x20nextSpeed;\x0a}',updatePosition_frag='uniform\x20sampler2D\x20currentParticlesPosition;\x20//\x20(lon,\x20lat,\x20lev)\x0auniform\x20sampler2D\x20currentParticlesSpeed;\x20//\x20(u,\x20v,\x20w,\x20normalization)\x0a\x0avarying\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\x20gl_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=\x20texture2D(currentParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec3\x20speed\x20=\x20texture2D(currentParticlesSpeed,\x20v_textureCoordinates).rgb;\x0a\x0a\x20\x20\x20\x20updatePosition(lonLatLev,\x20speed);\x0a}',postProcessingPosition_frag='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\x0avarying\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=\x20texture2D(nextParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec4\x20nextSpeed\x20=\x20texture2D(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\x20gl_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\x20gl_FragColor\x20=\x20vec4(nextParticle,\x200.0);\x0a\x20\x20\x20\x20}\x0a}',postProcessingSpeed_frag='uniform\x20sampler2D\x20postProcessingPosition;\x0auniform\x20sampler2D\x20nextParticlesSpeed;\x0a\x0avarying\x20vec2\x20v_textureCoordinates;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20vec4\x20randomParticle\x20=\x20texture2D(postProcessingPosition,\x20v_textureCoordinates);\x0a\x20\x20\x20\x20vec4\x20particleSpeed\x20=\x20texture2D(nextParticlesSpeed,\x20v_textureCoordinates);\x0a\x0a\x20\x20\x20\x20if\x20(randomParticle.a\x20>\x200.0)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20vec4(0.0);\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20particleSpeed;\x0a\x20\x20\x20\x20}\x0a}',Cesium$3=mars3d__namespace['Cesium'],ParticlesComputing=(function(){var _0x216c09=_0x521b0e;function _0xb989e5(_0x5a9439,_0x45d5f3,_0x186e5b,_0x2b595e){var _0x54ebbc=_0x4fd8;_classCallCheck(this,_0xb989e5),this['data']=_0x45d5f3,this['createWindTextures'](_0x5a9439,_0x45d5f3),this['createParticlesTextures'](_0x5a9439,_0x186e5b,_0x2b595e),this[_0x54ebbc(0x22f)](_0x45d5f3,_0x186e5b,_0x2b595e);}return _createClass(_0xb989e5,[{'key':_0x216c09(0x167),'value':function _0x3e093f(_0x39a3a1,_0x210a42){var _0x5df9e1=_0x216c09,_0x1319c0={'context':_0x39a3a1,'width':_0x210a42['dimensions'][_0x5df9e1(0x18f)],'height':_0x210a42['dimensions']['lat']*(_0x210a42['dimensions'][_0x5df9e1(0x213)]||0x1),'pixelFormat':Cesium$3['PixelFormat']['LUMINANCE'],'pixelDatatype':Cesium$3[_0x5df9e1(0x21d)][_0x5df9e1(0x1d8)],'flipY':![],'sampler':new Cesium$3['Sampler']({'minificationFilter':Cesium$3['TextureMinificationFilter']['NEAREST'],'magnificationFilter':Cesium$3[_0x5df9e1(0x1c5)]['NEAREST']})};this['windTextures']={'U':Util[_0x5df9e1(0x1d7)](_0x1319c0,_0x210a42['U']['array']),'V':Util['createTexture'](_0x1319c0,_0x210a42['V'][_0x5df9e1(0x1de)])};}},{'key':'createParticlesTextures','value':function _0x5c5cc3(_0x57175c,_0x14c5ae,_0x4f3666){var _0x2c37de=_0x216c09,_0x4de3a7={'context':_0x57175c,'width':_0x14c5ae[_0x2c37de(0x1a2)],'height':_0x14c5ae['particlesTextureSize'],'pixelFormat':Cesium$3['PixelFormat'][_0x2c37de(0x196)],'pixelDatatype':Cesium$3['PixelDatatype']['FLOAT'],'flipY':![],'sampler':new Cesium$3['Sampler']({'minificationFilter':Cesium$3['TextureMinificationFilter']['NEAREST'],'magnificationFilter':Cesium$3['TextureMagnificationFilter']['NEAREST']})},_0x12486e=this['randomizeParticles'](_0x14c5ae['maxParticles'],_0x4f3666),_0x2313af=new Float32Array(0x4*_0x14c5ae['maxParticles'])['fill'](0x0);this['particlesTextures']={'particlesWind':Util['createTexture'](_0x4de3a7),'currentParticlesPosition':Util['createTexture'](_0x4de3a7,_0x12486e),'nextParticlesPosition':Util[_0x2c37de(0x1d7)](_0x4de3a7,_0x12486e),'currentParticlesSpeed':Util[_0x2c37de(0x1d7)](_0x4de3a7,_0x2313af),'nextParticlesSpeed':Util['createTexture'](_0x4de3a7,_0x2313af),'postProcessingPosition':Util[_0x2c37de(0x1d7)](_0x4de3a7,_0x12486e),'postProcessingSpeed':Util[_0x2c37de(0x1d7)](_0x4de3a7,_0x2313af)};}},{'key':_0x216c09(0x223),'value':function _0x4fbdc0(_0xcd57a3,_0x533c19){var _0x20a787=_0x216c09,_0x59c20a=new Float32Array(0x4*_0xcd57a3);for(var _0x3330f8=0x0;_0x3330f8<_0xcd57a3;_0x3330f8++){_0x59c20a[0x4*_0x3330f8]=Cesium$3['Math'][_0x20a787(0x228)](_0x533c19['lonRange']['x'],_0x533c19['lonRange']['y']),_0x59c20a[0x4*_0x3330f8+0x1]=Cesium$3[_0x20a787(0x204)][_0x20a787(0x228)](_0x533c19['latRange']['x'],_0x533c19[_0x20a787(0x216)]['y']),_0x59c20a[0x4*_0x3330f8+0x2]=Cesium$3[_0x20a787(0x204)]['randomBetween'](this['data']['lev']['min'],this['data']['lev']['max']),_0x59c20a[0x4*_0x3330f8+0x3]=0x0;}return _0x59c20a;}},{'key':'destroyParticlesTextures','value':function _0x1beb2b(){var _0x3e53a7=this;Object['keys'](this['particlesTextures'])['forEach'](function(_0x241539){var _0x1f02d6=_0x4fd8;_0x3e53a7[_0x1f02d6(0x1d4)][_0x241539]['destroy']();});}},{'key':'createComputingPrimitives','value':function _0x5d5eb3(_0x581ec9,_0x53c6a9,_0x9ba232){var _0xade940=_0x216c09,_0x1ed1f3=new Cesium$3['Cartesian3'](_0x581ec9['dimensions']['lon'],_0x581ec9[_0xade940(0x158)][_0xade940(0x1a8)],_0x581ec9[_0xade940(0x158)]['lev']),_0x4e2fd1=new Cesium$3[(_0xade940(0x231))](_0x581ec9[_0xade940(0x18f)][_0xade940(0x161)],_0x581ec9['lat']['min'],_0x581ec9[_0xade940(0x213)]['min']),_0x4f2c87=new Cesium$3['Cartesian3'](_0x581ec9['lon']['max'],_0x581ec9['lat'][_0xade940(0x1d0)],_0x581ec9['lev'][_0xade940(0x1d0)]),_0xdcf6ca=new Cesium$3['Cartesian3']((_0x4f2c87['x']-_0x4e2fd1['x'])/(_0x1ed1f3['x']-0x1),(_0x4f2c87['y']-_0x4e2fd1['y'])/(_0x1ed1f3['y']-0x1),_0x1ed1f3['z']>0x1?(_0x4f2c87['z']-_0x4e2fd1['z'])/(_0x1ed1f3['z']-0x1):0x1),_0x457987=new Cesium$3['Cartesian2'](_0x581ec9['U']['min'],_0x581ec9['U']['max']),_0x512aac=new Cesium$3[(_0xade940(0x16e))](_0x581ec9['V']['min'],_0x581ec9['V']['max']),_0x41ce8f=this;this['primitives']={'getWind':new CustomPrimitive({'commandType':_0xade940(0x226),'uniformMap':{'U':function _0x816a0(){var _0x3555e0=_0xade940;return _0x41ce8f[_0x3555e0(0x1fc)]['U'];},'V':function _0x53edeb(){var _0x526155=_0xade940;return _0x41ce8f[_0x526155(0x1fc)]['V'];},'currentParticlesPosition':function _0x371ddf(){return _0x41ce8f['particlesTextures']['currentParticlesPosition'];},'dimension':function _0x236e40(){return _0x1ed1f3;},'minimum':function _0x29060c(){return _0x4e2fd1;},'maximum':function _0x479032(){return _0x4f2c87;},'interval':function _0x37d4d1(){return _0xdcf6ca;}},'fragmentShaderSource':new Cesium$3['ShaderSource']({'sources':[getWind_frag]}),'outputTexture':this['particlesTextures'][_0xade940(0x189)],'preExecute':function _0x2546b9(){var _0x1d90c0=_0xade940;_0x41ce8f['primitives']['getWind']['commandToExecute']['outputTexture']=_0x41ce8f['particlesTextures'][_0x1d90c0(0x189)];}}),'updateSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesSpeed':function _0x517956(){return _0x41ce8f['particlesTextures']['currentParticlesSpeed'];},'particlesWind':function _0x34ebda(){return _0x41ce8f['particlesTextures']['particlesWind'];},'uSpeedRange':function _0x3df8bd(){return _0x457987;},'vSpeedRange':function _0x3a75b2(){return _0x512aac;},'pixelSize':function _0x4ed0b7(){var _0x590e9f=_0xade940;return _0x9ba232[_0x590e9f(0x1b4)];},'speedFactor':function _0xbd7d7d(){var _0xdc0c5b=_0xade940;return _0x53c6a9[_0xdc0c5b(0x1c8)];}},'fragmentShaderSource':new Cesium$3['ShaderSource']({'sources':[updateSpeed_frag]}),'outputTexture':this['particlesTextures'][_0xade940(0x246)],'preExecute':function _0x5be0cb(){var _0x4641bb=_0xade940,_0x2d7325=_0x41ce8f['particlesTextures']['currentParticlesSpeed'];_0x41ce8f[_0x4641bb(0x1d4)]['currentParticlesSpeed']=_0x41ce8f[_0x4641bb(0x1d4)][_0x4641bb(0x1ba)],_0x41ce8f['particlesTextures'][_0x4641bb(0x1ba)]=_0x2d7325,_0x41ce8f['primitives']['updateSpeed'][_0x4641bb(0x201)]['outputTexture']=_0x41ce8f['particlesTextures']['nextParticlesSpeed'];}}),'updatePosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesPosition':function _0x24a3eb(){var _0x164a16=_0xade940;return _0x41ce8f[_0x164a16(0x1d4)][_0x164a16(0x1b5)];},'currentParticlesSpeed':function _0x26fa91(){return _0x41ce8f['particlesTextures']['currentParticlesSpeed'];}},'fragmentShaderSource':new Cesium$3[(_0xade940(0x20f))]({'sources':[updatePosition_frag]}),'outputTexture':this['particlesTextures']['nextParticlesPosition'],'preExecute':function _0x473f5d(){var _0x490988=_0xade940,_0xfeda25=_0x41ce8f['particlesTextures']['currentParticlesPosition'];_0x41ce8f[_0x490988(0x1d4)]['currentParticlesPosition']=_0x41ce8f['particlesTextures']['postProcessingPosition'],_0x41ce8f['particlesTextures']['postProcessingPosition']=_0xfeda25,_0x41ce8f['primitives']['updatePosition'][_0x490988(0x201)]['outputTexture']=_0x41ce8f['particlesTextures']['nextParticlesPosition'];}}),'postProcessingPosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'nextParticlesPosition':function _0x176a34(){var _0x54f0b9=_0xade940;return _0x41ce8f[_0x54f0b9(0x1d4)]['nextParticlesPosition'];},'nextParticlesSpeed':function _0x5b7eaf(){var _0x5b1c81=_0xade940;return _0x41ce8f[_0x5b1c81(0x1d4)]['nextParticlesSpeed'];},'lonRange':function _0x4cd478(){return _0x9ba232['lonRange'];},'latRange':function _0x559938(){var _0x14ebaa=_0xade940;return _0x9ba232[_0x14ebaa(0x216)];},'randomCoefficient':function _0xe1f272(){var _0x4d6ee2=_0xade940,_0x5a7334=Math[_0x4d6ee2(0x22a)]();return _0x5a7334;},'dropRate':function _0xfcf341(){var _0x36c240=_0xade940;return _0x53c6a9[_0x36c240(0x17a)];},'dropRateBump':function _0x49f1d6(){return _0x53c6a9['dropRateBump'];}},'fragmentShaderSource':new Cesium$3[(_0xade940(0x20f))]({'sources':[postProcessingPosition_frag]}),'outputTexture':this['particlesTextures'][_0xade940(0x162)],'preExecute':function _0x1fb4f6(){var _0x47ca6b=_0xade940;_0x41ce8f['primitives'][_0x47ca6b(0x162)][_0x47ca6b(0x201)]['outputTexture']=_0x41ce8f['particlesTextures']['postProcessingPosition'];}}),'postProcessingSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'postProcessingPosition':function _0x32bbaa(){return _0x41ce8f['particlesTextures']['postProcessingPosition'];},'nextParticlesSpeed':function _0x1a6d09(){var _0x3e9d92=_0xade940;return _0x41ce8f['particlesTextures'][_0x3e9d92(0x246)];}},'fragmentShaderSource':new Cesium$3['ShaderSource']({'sources':[postProcessingSpeed_frag]}),'outputTexture':this[_0xade940(0x1d4)]['postProcessingSpeed'],'preExecute':function _0x38a6b6(){_0x41ce8f['primitives']['postProcessingSpeed']['commandToExecute']['outputTexture']=_0x41ce8f['particlesTextures']['postProcessingSpeed'];}})};}}]),_0xb989e5;}()),Cesium$2=mars3d__namespace['Cesium'],ParticleSystem=(function(){var _0x93ec85=_0x521b0e;function _0x30eb8d(_0x1467bd,_0x4a91fb,_0x5edaa3,_0x4cd718){var _0x20a7eb=_0x4fd8;_classCallCheck(this,_0x30eb8d),this[_0x20a7eb(0x190)]=_0x1467bd,_0x4a91fb=_objectSpread2({},_0x4a91fb);if(_0x4a91fb['udata']&&_0x4a91fb['vdata']){var _0x412c31,_0x304c7d,_0x436f0f,_0x268b2b,_0x2e9d15,_0x967bbc;_0x4a91fb['dimensions']={},_0x4a91fb['dimensions']['lon']=_0x4a91fb['cols'],_0x4a91fb['dimensions']['lat']=_0x4a91fb['rows'],_0x4a91fb['dimensions']['lev']=_0x4a91fb['lev']||0x1,_0x4a91fb[_0x20a7eb(0x18f)]={},_0x4a91fb['lon'][_0x20a7eb(0x161)]=_0x4a91fb['xmin'],_0x4a91fb['lon']['max']=_0x4a91fb['xmax'],_0x4a91fb['lat']={},_0x4a91fb['lat']['min']=_0x4a91fb[_0x20a7eb(0x188)],_0x4a91fb[_0x20a7eb(0x1a8)]['max']=_0x4a91fb[_0x20a7eb(0x235)],_0x4a91fb['lev']={},_0x4a91fb[_0x20a7eb(0x213)][_0x20a7eb(0x161)]=(_0x412c31=_0x4a91fb['levmin'])!==null&&_0x412c31!==void 0x0?_0x412c31:0x1,_0x4a91fb['lev'][_0x20a7eb(0x1d0)]=(_0x304c7d=_0x4a91fb['levmax'])!==null&&_0x304c7d!==void 0x0?_0x304c7d:0x1,_0x4a91fb['U']={},_0x4a91fb['U']['array']=new Float32Array(_0x4a91fb['udata']),_0x4a91fb['U']['min']=(_0x436f0f=_0x4a91fb[_0x20a7eb(0x1f1)])!==null&&_0x436f0f!==void 0x0?_0x436f0f:Math['min']['apply'](Math,_toConsumableArray(_0x4a91fb['udata'])),_0x4a91fb['U'][_0x20a7eb(0x1d0)]=(_0x268b2b=_0x4a91fb[_0x20a7eb(0x1ac)])!==null&&_0x268b2b!==void 0x0?_0x268b2b:Math['max']['apply'](Math,_toConsumableArray(_0x4a91fb['udata'])),_0x4a91fb['V']={},_0x4a91fb['V']['array']=new Float32Array(_0x4a91fb['vdata']),_0x4a91fb['V'][_0x20a7eb(0x161)]=(_0x2e9d15=_0x4a91fb['vmin'])!==null&&_0x2e9d15!==void 0x0?_0x2e9d15:Math[_0x20a7eb(0x161)]['apply'](Math,_toConsumableArray(_0x4a91fb['vdata'])),_0x4a91fb['V']['max']=(_0x967bbc=_0x4a91fb[_0x20a7eb(0x23c)])!==null&&_0x967bbc!==void 0x0?_0x967bbc:Math['max']['apply'](Math,_toConsumableArray(_0x4a91fb[_0x20a7eb(0x18a)]));}this[_0x20a7eb(0x1b1)]=_0x4a91fb,this[_0x20a7eb(0x208)]=_0x5edaa3,this['viewerParameters']=_0x4cd718,this[_0x20a7eb(0x19e)]=new ParticlesComputing(this['context'],this['data'],this[_0x20a7eb(0x208)],this[_0x20a7eb(0x1a7)]),this[_0x20a7eb(0x215)]=new ParticlesRendering(this[_0x20a7eb(0x190)],this['data'],this[_0x20a7eb(0x208)],this[_0x20a7eb(0x1a7)],this[_0x20a7eb(0x19e)]);}return _createClass(_0x30eb8d,[{'key':'canvasResize','value':function _0x35b0d5(_0x372f45){var _0x561c15=_0x4fd8,_0x4a768a=this;this[_0x561c15(0x19e)]['destroyParticlesTextures'](),Object['keys'](this[_0x561c15(0x19e)]['windTextures'])[_0x561c15(0x24b)](function(_0x5590a6){var _0x23b567=_0x561c15;_0x4a768a[_0x23b567(0x19e)]['windTextures'][_0x5590a6]['destroy']();}),this['particlesRendering']['textures'][_0x561c15(0x164)][_0x561c15(0x17e)](),Object['keys'](this['particlesRendering']['framebuffers'])[_0x561c15(0x24b)](function(_0x5a9816){var _0x3ed347=_0x561c15;_0x4a768a['particlesRendering']['framebuffers'][_0x5a9816][_0x3ed347(0x17e)]();}),this['context']=_0x372f45,this['particlesComputing']=new ParticlesComputing(this['context'],this['data'],this[_0x561c15(0x208)],this[_0x561c15(0x1a7)]),this['particlesRendering']=new ParticlesRendering(this['context'],this['data'],this[_0x561c15(0x208)],this['viewerParameters'],this['particlesComputing']);}},{'key':'clearFramebuffers','value':function _0x57e832(){var _0x12630a=_0x4fd8,_0x397d2c=this,_0x58a035=new Cesium$2[(_0x12630a(0x1e9))]({'color':new Cesium$2['Color'](0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Cesium$2['Pass'][_0x12630a(0x245)]});Object['keys'](this['particlesRendering'][_0x12630a(0x1cc)])[_0x12630a(0x24b)](function(_0xa57ae5){var _0x49c12c=_0x12630a;_0x58a035[_0x49c12c(0x1ef)]=_0x397d2c['particlesRendering']['framebuffers'][_0xa57ae5],_0x58a035['execute'](_0x397d2c['context']);});}},{'key':'refreshParticles','value':function _0x280553(_0x59a826){var _0x423a4f=_0x4fd8;this['clearFramebuffers'](),this[_0x423a4f(0x19e)]['destroyParticlesTextures'](),this['particlesComputing']['createParticlesTextures'](this['context'],this[_0x423a4f(0x208)],this[_0x423a4f(0x1a7)]);if(_0x59a826){var _0x2e5184=this[_0x423a4f(0x215)]['createSegmentsGeometry'](this['options']);this['particlesRendering'][_0x423a4f(0x22c)][_0x423a4f(0x19d)]['geometry']=_0x2e5184;var _0xc9f8c7=Cesium$2['VertexArray']['fromGeometry']({'context':this['context'],'geometry':_0x2e5184,'attributeLocations':this['particlesRendering']['primitives']['segments'][_0x423a4f(0x16c)],'bufferUsage':Cesium$2[_0x423a4f(0x23a)]['STATIC_DRAW']});this['particlesRendering']['primitives']['segments'][_0x423a4f(0x201)]['vertexArray']=_0xc9f8c7;}}},{'key':_0x93ec85(0x170),'value':function _0x4207e9(_0x4452f0){var _0x2dfcfb=_0x93ec85,_0x5a9a8b=this,_0x1208ca=![];this['options'][_0x2dfcfb(0x202)]!==_0x4452f0[_0x2dfcfb(0x202)]&&(_0x1208ca=!![]),Object[_0x2dfcfb(0x1e6)](_0x4452f0)['forEach'](function(_0x3505e4){var _0x1351ff=_0x2dfcfb;_0x5a9a8b[_0x1351ff(0x208)][_0x3505e4]=_0x4452f0[_0x3505e4];}),this['refreshParticles'](_0x1208ca);}},{'key':'applyViewerParameters','value':function _0x36fb8a(_0x37e788){var _0xe6b67f=this;Object['keys'](_0x37e788)['forEach'](function(_0x42f4a4){_0xe6b67f['viewerParameters'][_0x42f4a4]=_0x37e788[_0x42f4a4];}),this['refreshParticles'](![]);}},{'key':'destroy','value':function _0x283be5(){var _0x4c2d74=_0x93ec85,_0x1e3ae9=this;clearTimeout(this[_0x4c2d74(0x1f2)]),this['particlesComputing']['destroyParticlesTextures'](),Object['keys'](this['particlesComputing']['windTextures'])['forEach'](function(_0x56f277){_0x1e3ae9['particlesComputing']['windTextures'][_0x56f277]['destroy']();}),this['particlesRendering']['textures'][_0x4c2d74(0x164)]['destroy'](),Object['keys'](this[_0x4c2d74(0x215)][_0x4c2d74(0x1cc)])[_0x4c2d74(0x24b)](function(_0xfc5b0){_0x1e3ae9['particlesRendering']['framebuffers'][_0xfc5b0]['destroy']();});for(var _0x40e3ad in this){delete this[_0x40e3ad];}}}]),_0x30eb8d;}()),Cesium$1=mars3d__namespace[_0x521b0e(0x168)],BaseLayer$1=mars3d__namespace[_0x521b0e(0x1c0)]['BaseLayer'],DEF_OPTIONS={'particlesNumber':0x1000,'fixedHeight':0x0,'fadeOpacity':0.996,'dropRate':0.003,'dropRateBump':0.01,'speedFactor':0.5,'lineWidth':0x2,'colors':[_0x521b0e(0x163)]},WindLayer=function(_0x262c41){var _0x4d0f9b=_0x521b0e;_inherits(_0x3d0fd2,_0x262c41);var _0x41cbd9=_createSuper(_0x3d0fd2);function _0x3d0fd2(){var _0x3e8132,_0x55dc90=arguments['length']>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};return _classCallCheck(this,_0x3d0fd2),_0x55dc90=_objectSpread2(_objectSpread2({},DEF_OPTIONS),_0x55dc90),_0x3e8132=_0x41cbd9['call'](this,_0x55dc90),_0x3e8132['_setOptionsHook'](_0x55dc90),_0x3e8132;}return _createClass(_0x3d0fd2,[{'key':'layer','get':function _0x4ab504(){return this['primitives'];}},{'key':'data','get':function _0x305410(){return this['_data'];},'set':function _0x5cc310(_0x2970c4){var _0x5cc707=_0x4fd8;this[_0x5cc707(0x236)](_0x2970c4);}},{'key':'colors','get':function _0x10ca81(){var _0x369626=_0x4fd8;return this['options'][_0x369626(0x178)];},'set':function _0x4f330f(_0x43e9ae){this['options']['colors']=_0x43e9ae,this['particleSystem']&&this['particleSystem']['setOptions']({'colors':_0x43e9ae}),this['resize']();}},{'key':'_mountedHook','value':function _0x18bef4(){}},{'key':_0x4d0f9b(0x1f6),'value':function _0x310c17(){var _0x323fcb=_0x4d0f9b;this['scene']=this['_map']['scene'],this['camera']=this[_0x323fcb(0x222)]['camera'],this['primitives']=new Cesium$1[(_0x323fcb(0x183))](),this[_0x323fcb(0x222)]['scene']['primitives']['add'](this[_0x323fcb(0x22c)]),this['viewerParameters']={'lonRange':new Cesium$1[(_0x323fcb(0x16e))](),'latRange':new Cesium$1[(_0x323fcb(0x16e))](),'pixelSize':0x0},this[_0x323fcb(0x177)]=new Cesium$1[(_0x323fcb(0x1bd))](Cesium$1['Cartesian3'][_0x323fcb(0x217)],0.99*0x615299),this['updateViewerParameters'](),window['addEventListener'](_0x323fcb(0x203),this['resize']['bind'](this),![]),this['mouse_down']=![],this['mouse_move']=![],this[_0x323fcb(0x222)]['on'](mars3d__namespace[_0x323fcb(0x1c2)][_0x323fcb(0x20a)],this['_onMapWhellEvent'],this),this[_0x323fcb(0x222)]['on'](mars3d__namespace[_0x323fcb(0x1c2)]['mouseDown'],this['_onMouseDownEvent'],this),this[_0x323fcb(0x222)]['on'](mars3d__namespace['EventType']['mouseUp'],this['_onMouseUpEvent'],this),this[_0x323fcb(0x222)]['on'](mars3d__namespace['EventType'][_0x323fcb(0x1fa)],this[_0x323fcb(0x244)],this),this['_data']&&this['setData'](this[_0x323fcb(0x1b0)]);}},{'key':'_removedHook','value':function _0x1d2419(){var _0x525aa4=_0x4d0f9b;window[_0x525aa4(0x209)](_0x525aa4(0x203),this['resize']),this['_map']['off'](mars3d__namespace['EventType']['preRender'],this[_0x525aa4(0x206)],this),this[_0x525aa4(0x222)]['off'](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this),this['_map']['off'](mars3d__namespace['EventType']['mouseDown'],this['_onMouseDownEvent'],this),this['_map']['off'](mars3d__namespace['EventType'][_0x525aa4(0x1da)],this[_0x525aa4(0x1b6)],this),this['_map']['off'](mars3d__namespace['EventType']['mouseMove'],this[_0x525aa4(0x244)],this),this['primitives']['removeAll'](),this['_map']['scene']['primitives']['remove'](this['primitives']);}},{'key':_0x4d0f9b(0x203),'value':function _0x2991f4(){var _0x235d53=_0x4d0f9b;if(!this['show']||!this['particleSystem'])return;this[_0x235d53(0x22c)]['show']=![],this[_0x235d53(0x22c)]['removeAll'](),this['_map']['once'](mars3d__namespace[_0x235d53(0x1c2)]['preRender'],this[_0x235d53(0x206)],this);}},{'key':'_onMap_preRenderEvent','value':function _0x3875f8(_0xca69e0){var _0x7888f4=_0x4d0f9b;this['particleSystem'][_0x7888f4(0x180)](this['scene']['context']),this[_0x7888f4(0x1f4)](),this['primitives']['show']=!![];}},{'key':'_onMapWhellEvent','value':function _0x470b71(_0x17f6e2){var _0x4b3d20=_0x4d0f9b,_0x2949d7=this;clearTimeout(this['refreshTimer']);if(!this[_0x4b3d20(0x1f9)]||!this['particleSystem'])return;this['primitives']['show']=![],this[_0x4b3d20(0x1eb)]=setTimeout(function(){if(!_0x2949d7['show'])return;_0x2949d7['redraw']();},0xc8);}},{'key':_0x4d0f9b(0x16a),'value':function _0x2a278c(_0x143a5f){this['mouse_down']=!![];}},{'key':'_onMouseMoveEvent','value':function _0x39a2a0(_0x120e3b){var _0xe35a95=_0x4d0f9b;if(!this[_0xe35a95(0x1f9)]||!this['particleSystem'])return;this[_0xe35a95(0x165)]&&(this['primitives']['show']=![],this['mouse_move']=!![]);}},{'key':_0x4d0f9b(0x1b6),'value':function _0x37cf76(_0x30d3fd){var _0x12ed2a=_0x4d0f9b;if(!this[_0x12ed2a(0x1f9)]||!this[_0x12ed2a(0x1c7)])return;this['mouse_down']&&this['mouse_move']&&this['redraw'](),this['primitives']['show']=!![],this[_0x12ed2a(0x165)]=![],this['mouse_move']=![];}},{'key':'redraw','value':function _0x159f21(){var _0x60752c=_0x4d0f9b;if(!this[_0x60752c(0x222)]||!this['show'])return;this[_0x60752c(0x23f)](),this[_0x60752c(0x1c7)]['applyViewerParameters'](this[_0x60752c(0x1a7)]),this['primitives'][_0x60752c(0x1f9)]=!![];}},{'key':_0x4d0f9b(0x236),'value':function _0x2bcbb6(_0x4a1a74){var _0x51c5f8=_0x4d0f9b;this[_0x51c5f8(0x1b0)]=_0x4a1a74,this['particleSystem']&&this[_0x51c5f8(0x1c7)]['destroy'](),this[_0x51c5f8(0x1c7)]=new ParticleSystem(this['scene']['context'],_0x4a1a74,this['getOptions'](),this[_0x51c5f8(0x1a7)]),this['addPrimitives']();}},{'key':'_setOptionsHook','value':function _0x137b3a(_0x107d83,_0x545f35){var _0x4651b4=_0x4d0f9b;if(_0x107d83)for(var _0x5cda8a in _0x107d83){this[_0x5cda8a]=_0x107d83[_0x5cda8a];}this['particleSystem']&&this['particleSystem']['setOptions'](this[_0x4651b4(0x227)]());}},{'key':'getOptions','value':function _0x1952ec(){var _0x47805c=_0x4d0f9b,_0x1201e5=Math['ceil'](Math['sqrt'](this['particlesNumber']));return this['particlesNumber']=_0x1201e5*_0x1201e5,{'particlesTextureSize':_0x1201e5,'maxParticles':this[_0x47805c(0x171)],'particleHeight':this['fixedHeight'],'fadeOpacity':this[_0x47805c(0x1ab)],'dropRate':this[_0x47805c(0x17a)],'dropRateBump':this['dropRateBump'],'speedFactor':this['speedFactor'],'lineWidth':this['lineWidth'],'colors':this[_0x47805c(0x178)]};}},{'key':'addPrimitives','value':function _0x19bb27(){var _0x15fca9=_0x4d0f9b;this['primitives']['add'](this['particleSystem']['particlesComputing'][_0x15fca9(0x22c)]['getWind']),this['primitives']['add'](this[_0x15fca9(0x1c7)][_0x15fca9(0x19e)]['primitives']['updateSpeed']),this[_0x15fca9(0x22c)]['add'](this['particleSystem']['particlesComputing']['primitives']['updatePosition']),this['primitives']['add'](this['particleSystem']['particlesComputing']['primitives'][_0x15fca9(0x162)]),this['primitives']['add'](this[_0x15fca9(0x1c7)]['particlesComputing']['primitives'][_0x15fca9(0x1ba)]),this['primitives']['add'](this['particleSystem']['particlesRendering']['primitives'][_0x15fca9(0x19d)]),this['primitives']['add'](this['particleSystem']['particlesRendering']['primitives']['trails']),this[_0x15fca9(0x22c)]['add'](this[_0x15fca9(0x1c7)]['particlesRendering'][_0x15fca9(0x22c)]['screen']);}},{'key':'updateViewerParameters','value':function _0x49f2a0(){var _0x361dcb=_0x4d0f9b,_0x3e1482=this['camera']['computeViewRectangle'](this[_0x361dcb(0x193)][_0x361dcb(0x1be)]['ellipsoid']);if(!_0x3e1482){var _0xd13e57=this['_map']['getExtent']();_0x3e1482=Cesium$1['Rectangle']['fromDegrees'](_0xd13e57['xmin'],_0xd13e57[_0x361dcb(0x188)],_0xd13e57['xmax'],_0xd13e57['ymax']);}var _0x41ffbb=Util[_0x361dcb(0x160)](_0x3e1482);this['viewerParameters']['lonRange']['x']=_0x41ffbb['lon']['min'],this[_0x361dcb(0x1a7)]['lonRange']['y']=_0x41ffbb['lon']['max'],this[_0x361dcb(0x1a7)][_0x361dcb(0x216)]['x']=_0x41ffbb[_0x361dcb(0x1a8)]['min'],this['viewerParameters'][_0x361dcb(0x216)]['y']=_0x41ffbb[_0x361dcb(0x1a8)]['max'];var _0x32760a=this[_0x361dcb(0x15d)]['getPixelSize'](this['globeBoundingSphere'],this['scene']['drawingBufferWidth'],this['scene']['drawingBufferHeight']);_0x32760a>0x0&&(this['viewerParameters']['pixelSize']=_0x32760a);}}]),_0x3d0fd2;}(BaseLayer$1);function _0x4fd8(_0x24e06c,_0x13208b){var _0x2bab30=_0x2bab();return _0x4fd8=function(_0x4fd816,_0x494aba){_0x4fd816=_0x4fd816-0x158;var _0x2c2204=_0x2bab30[_0x4fd816];return _0x2c2204;},_0x4fd8(_0x24e06c,_0x13208b);}mars3d__namespace['LayerUtil']['register'](_0x521b0e(0x1a3),WindLayer),mars3d__namespace['layer']['WindLayer']=WindLayer;var CanvasParticle=(function(){function _0x3385c7(){var _0x4ee55c=_0x4fd8;_classCallCheck(this,_0x3385c7),this['lng']=null,this[_0x4ee55c(0x1a8)]=null,this[_0x4ee55c(0x1f0)]=null,this['tlat']=null,this['age']=null;}return _createClass(_0x3385c7,[{'key':'destroy','value':function _0x50ca06(){for(var _0x19b7dc in this){delete this[_0x19b7dc];}}}]),_0x3385c7;}()),CanvasWindField=(function(){var _0x2e1199=_0x521b0e;function _0x391e0b(_0x53a3fa){_classCallCheck(this,_0x391e0b),this['setOptions'](_0x53a3fa);}return _createClass(_0x391e0b,[{'key':'speedRate','get':function _0x464c1a(){var _0x93a04=_0x4fd8;return this[_0x93a04(0x169)];},'set':function _0x537481(_0x34f7db){var _0x19d9f9=_0x4fd8;this['_speedRate']=(0x64-(_0x34f7db>0x63?0x63:_0x34f7db))*0x64,this['_calc_speedRate']=[(this['xmax']-this['xmin'])/this['_speedRate'],(this[_0x19d9f9(0x235)]-this['ymin'])/this['_speedRate']];}},{'key':'maxAge','get':function _0x25ac53(){return this['_maxAge'];},'set':function _0xef5909(_0x12040a){this['_maxAge']=_0x12040a;}},{'key':'setOptions','value':function _0x4abcdd(_0x5f14ef){var _0xd37f85=_0x4fd8;this['options']=_0x5f14ef,this[_0xd37f85(0x1a1)]=_0x5f14ef['maxAge']||0x78,this['speedRate']=_0x5f14ef['speedRate']||0x32,this['particles']=[];var _0x4bbeff=_0x5f14ef['particlesNumber']||0x1000;for(var _0x31e1cc=0x0;_0x31e1cc<_0x4bbeff;_0x31e1cc++){var _0x5a57db=this['_randomParticle'](new CanvasParticle());this['particles'][_0xd37f85(0x17d)](_0x5a57db);}}},{'key':'setDate','value':function _0x5e2940(_0x4c3223){var _0x3a48ab=_0x4fd8;this['rows']=_0x4c3223[_0x3a48ab(0x233)],this[_0x3a48ab(0x22b)]=_0x4c3223[_0x3a48ab(0x22b)],this['xmin']=_0x4c3223['xmin'],this['xmax']=_0x4c3223['xmax'],this['ymin']=_0x4c3223[_0x3a48ab(0x188)],this['ymax']=_0x4c3223['ymax'],this['grid']=[];var _0x277388=_0x4c3223[_0x3a48ab(0x1dc)],_0x1f2104=_0x4c3223['vdata'],_0x155f5b=![];_0x277388[_0x3a48ab(0x1e2)]===this['rows']&&_0x277388[0x0]['length']===this['cols']&&(_0x155f5b=!![]);var _0x21d44c=0x0,_0x5cc6c4=null,_0x1f356e=null;for(var _0x56945a=0x0;_0x56945a<this[_0x3a48ab(0x233)];_0x56945a++){_0x5cc6c4=[];for(var _0x3802e0=0x0;_0x3802e0<this['cols'];_0x3802e0++,_0x21d44c++){_0x155f5b?_0x1f356e=this[_0x3a48ab(0x1d1)](_0x277388[_0x56945a][_0x3802e0],_0x1f2104[_0x56945a][_0x3802e0]):_0x1f356e=this[_0x3a48ab(0x1d1)](_0x277388[_0x21d44c],_0x1f2104[_0x21d44c]),_0x5cc6c4['push'](_0x1f356e);}this['grid']['push'](_0x5cc6c4);}this['options']['reverseY']&&this['grid'][_0x3a48ab(0x1ec)]();}},{'key':_0x2e1199(0x253),'value':function _0x4abd65(){var _0x1d34db=_0x2e1199;delete this['rows'],delete this[_0x1d34db(0x22b)],delete this[_0x1d34db(0x16d)],delete this['xmax'],delete this['ymin'],delete this['ymax'],delete this['grid'],delete this['particles'];}},{'key':'toGridXY','value':function _0x2ab7ae(_0x3050b2,_0x58bb06){var _0x386e14=_0x2e1199,_0x157373=(_0x3050b2-this[_0x386e14(0x16d)])/(this['xmax']-this['xmin'])*(this['cols']-0x1),_0x3bfac2=(this['ymax']-_0x58bb06)/(this['ymax']-this[_0x386e14(0x188)])*(this['rows']-0x1);return[_0x157373,_0x3bfac2];}},{'key':_0x2e1199(0x1cf),'value':function _0x580001(_0x2d58e5,_0x1042f3){var _0x5279ba=_0x2e1199;if(_0x2d58e5<0x0||_0x2d58e5>=this['cols']||_0x1042f3>=this['rows'])return[0x0,0x0,0x0];var _0x329b5a=Math['floor'](_0x2d58e5),_0x245a66=Math['floor'](_0x1042f3);if(_0x329b5a===_0x2d58e5&&_0x245a66===_0x1042f3)return this['grid'][_0x1042f3][_0x2d58e5];var _0x23da0b=_0x329b5a+0x1,_0x14d45f=_0x245a66+0x1,_0x3efe5a=this['getUVByXY'](_0x329b5a,_0x245a66),_0x74c103=this[_0x5279ba(0x1cf)](_0x23da0b,_0x245a66),_0x31a62f=this['getUVByXY'](_0x329b5a,_0x14d45f),_0x54207a=this[_0x5279ba(0x1cf)](_0x23da0b,_0x14d45f),_0xa7d700=null;try{_0xa7d700=this['_bilinearInterpolation'](_0x2d58e5-_0x329b5a,_0x1042f3-_0x245a66,_0x3efe5a,_0x74c103,_0x31a62f,_0x54207a);}catch(_0xbba1ef){console['log'](_0x2d58e5,_0x1042f3);}return _0xa7d700;}},{'key':'_bilinearInterpolation','value':function _0x3489f5(_0x2b2ca6,_0x4cecdf,_0x3771cf,_0x430ac1,_0x21493e,_0x902df4){var _0x4799e0=0x1-_0x2b2ca6,_0x40b722=0x1-_0x4cecdf,_0x3e4fb6=_0x4799e0*_0x40b722,_0xc744e3=_0x2b2ca6*_0x40b722,_0x4828d5=_0x4799e0*_0x4cecdf,_0x5e6fd1=_0x2b2ca6*_0x4cecdf,_0x65b42c=_0x3771cf[0x0]*_0x3e4fb6+_0x430ac1[0x0]*_0xc744e3+_0x21493e[0x0]*_0x4828d5+_0x902df4[0x0]*_0x5e6fd1,_0x3d3c6c=_0x3771cf[0x1]*_0x3e4fb6+_0x430ac1[0x1]*_0xc744e3+_0x21493e[0x1]*_0x4828d5+_0x902df4[0x1]*_0x5e6fd1;return this['_calcUV'](_0x65b42c,_0x3d3c6c);}},{'key':_0x2e1199(0x1d1),'value':function _0x48037d(_0x197bab,_0x2d44a3){return[+_0x197bab,+_0x2d44a3,Math['sqrt'](_0x197bab*_0x197bab+_0x2d44a3*_0x2d44a3)];}},{'key':'getUVByPoint','value':function _0x36877b(_0x15667f,_0x48aaf9){var _0x580058=_0x2e1199;if(!this['isInExtent'](_0x15667f,_0x48aaf9))return null;var _0x43fc99=this[_0x580058(0x1cd)](_0x15667f,_0x48aaf9),_0x423143=this['getUVByXY'](_0x43fc99[0x0],_0x43fc99[0x1]);return _0x423143;}},{'key':'isInExtent','value':function _0x167817(_0x580958,_0x1afe50){var _0x5e4f70=_0x2e1199;return _0x580958>=this[_0x5e4f70(0x16d)]&&_0x580958<=this[_0x5e4f70(0x181)]&&_0x1afe50>=this['ymin']&&_0x1afe50<=this[_0x5e4f70(0x235)]?!![]:![];}},{'key':'getRandomLatLng','value':function _0xb53201(){var _0x14619e=_0x2e1199,_0x1ed988=fRandomByfloat(this['xmin'],this[_0x14619e(0x181)]),_0x4adf17=fRandomByfloat(this['ymin'],this['ymax']);return{'lat':_0x4adf17,'lng':_0x1ed988};}},{'key':'getParticles','value':function _0x21e715(){var _0x1a7256=_0x2e1199,_0x5b1977,_0x2c8360,_0x2bec7f;for(var _0x28ddd7=0x0,_0x35381a=this['particles']['length'];_0x28ddd7<_0x35381a;_0x28ddd7++){var _0xd1aec3=this['particles'][_0x28ddd7];_0xd1aec3[_0x1a7256(0x221)]<=0x0&&(_0xd1aec3=this[_0x1a7256(0x1a6)](_0xd1aec3));if(_0xd1aec3[_0x1a7256(0x221)]>0x0){var _0x38438e=_0xd1aec3[_0x1a7256(0x1f0)],_0x3480e1=_0xd1aec3['tlat'];_0x2bec7f=this['getUVByPoint'](_0x38438e,_0x3480e1),_0x2bec7f?(_0x5b1977=_0x38438e+this['_calc_speedRate'][0x0]*_0x2bec7f[0x0],_0x2c8360=_0x3480e1+this[_0x1a7256(0x20b)][0x1]*_0x2bec7f[0x1],_0xd1aec3[_0x1a7256(0x22e)]=_0x38438e,_0xd1aec3['lat']=_0x3480e1,_0xd1aec3[_0x1a7256(0x1f0)]=_0x5b1977,_0xd1aec3['tlat']=_0x2c8360,_0xd1aec3['age']--):_0xd1aec3['age']=0x0;}}return this['particles'];}},{'key':_0x2e1199(0x1a6),'value':function _0x52910e(_0x44c002){var _0x4cf7b3=_0x2e1199,_0x4c01e9,_0x444c24;for(var _0x5d1f78=0x0;_0x5d1f78<0x1e;_0x5d1f78++){_0x4c01e9=this['getRandomLatLng'](),_0x444c24=this['getUVByPoint'](_0x4c01e9['lng'],_0x4c01e9['lat']);if(_0x444c24&&_0x444c24[0x2]>0x0)break;}if(!_0x444c24)return _0x44c002;var _0x348d21=_0x4c01e9['lng']+this['_calc_speedRate'][0x0]*_0x444c24[0x0],_0x277c74=_0x4c01e9['lat']+this['_calc_speedRate'][0x1]*_0x444c24[0x1];return _0x44c002[_0x4cf7b3(0x22e)]=_0x4c01e9['lng'],_0x44c002['lat']=_0x4c01e9[_0x4cf7b3(0x1a8)],_0x44c002['tlng']=_0x348d21,_0x44c002[_0x4cf7b3(0x1bb)]=_0x277c74,_0x44c002[_0x4cf7b3(0x221)]=Math['round'](Math['random']()*this['maxAge']),_0x44c002;}},{'key':_0x2e1199(0x17e),'value':function _0x999cae(){for(var _0x2d5f27 in this){delete this[_0x2d5f27];}}}]),_0x391e0b;}());function fRandomByfloat(_0x2cb1eb,_0x10127e){return _0x2cb1eb+Math['random']()*(_0x10127e-_0x2cb1eb);}var Cesium=mars3d__namespace['Cesium'],BaseLayer=mars3d__namespace['layer']['BaseLayer'],CanvasWindLayer=function(_0x2327dd){var _0xf7c89a=_0x521b0e;_inherits(_0x48f148,_0x2327dd);var _0x42974a=_createSuper(_0x48f148);function _0x48f148(){var _0x1a5c75=_0x4fd8,_0x29d281,_0x3a26f2=arguments[_0x1a5c75(0x1e2)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};return _classCallCheck(this,_0x48f148),_0x29d281=_0x42974a['call'](this,_0x3a26f2),_0x29d281['_setOptionsHook'](_0x3a26f2),_0x29d281[_0x1a5c75(0x1fd)]=null,_0x29d281;}return _createClass(_0x48f148,[{'key':_0xf7c89a(0x1df),'value':function _0xbcb606(_0x3386df,_0x36f329){var _0x5a30be=_0xf7c89a,_0x7fdb0b,_0x45dd29,_0x14d17e;this[_0x5a30be(0x1f5)]=0x3e8/(_0x3386df['frameRate']||0xa),this[_0x5a30be(0x15f)]=(_0x7fdb0b=this['options'][_0x5a30be(0x18b)])!==null&&_0x7fdb0b!==void 0x0?_0x7fdb0b:![],this['color']=_0x3386df[_0x5a30be(0x250)]||'#ffffff',this[_0x5a30be(0x19c)]=_0x3386df['lineWidth']||0x1,this['fixedHeight']=(_0x45dd29=_0x3386df['fixedHeight'])!==null&&_0x45dd29!==void 0x0?_0x45dd29:0x0,this['reverseY']=(_0x14d17e=_0x3386df['reverseY'])!==null&&_0x14d17e!==void 0x0?_0x14d17e:![],this[_0x5a30be(0x1a9)]&&this[_0x5a30be(0x1a9)][_0x5a30be(0x170)](_0x3386df);}},{'key':'layer','get':function _0x4c69fc(){var _0x4bd122=_0xf7c89a;return this[_0x4bd122(0x1fd)];}},{'key':_0xf7c89a(0x200),'get':function _0x5a9e0a(){return this['_map']['scene']['canvas']['clientWidth'];}},{'key':_0xf7c89a(0x1b2),'get':function _0x102065(){return this['_map']['scene']['canvas']['clientHeight'];}},{'key':'pointerEvents','get':function _0x4458a0(){return this['_pointerEvents'];},'set':function _0xcb5498(_0x48e7d4){var _0xa64743=_0xf7c89a;this['_pointerEvents']=_0x48e7d4;if(!this[_0xa64743(0x1fd)])return;_0x48e7d4?this['canvas'][_0xa64743(0x175)]['pointer-events']='all':this['canvas']['style']['pointer-events']=_0xa64743(0x219);}},{'key':_0xf7c89a(0x171),'get':function _0x549b7a(){return this['options']['particlesNumber'];},'set':function _0x4fbec6(_0x2346d6){var _0x2ab4aa=_0xf7c89a,_0x3b28aa=this;this['options']['particlesNumber']=_0x2346d6,clearTimeout(this[_0x2ab4aa(0x248)]),this['_canrefresh']=setTimeout(function(){_0x3b28aa['redraw']();},0x1f4);}},{'key':'speedRate','get':function _0x3e5307(){return this['options']['speedRate'];},'set':function _0x19b5fc(_0x489525){var _0x2c5283=_0xf7c89a;this['options']['speedRate']=_0x489525,this[_0x2c5283(0x1a9)]&&(this['windField']['speedRate']=_0x489525);}},{'key':_0xf7c89a(0x1a1),'get':function _0x517fb4(){return this['options']['maxAge'];},'set':function _0x42765f(_0x39b65e){var _0x3ba284=_0xf7c89a;this['options'][_0x3ba284(0x1a1)]=_0x39b65e,this['windField']&&(this['windField']['maxAge']=_0x39b65e);}},{'key':_0xf7c89a(0x1b1),'get':function _0x1067a8(){return this['windData'];},'set':function _0x5c27d1(_0x5870da){var _0x47c1ed=_0xf7c89a;this[_0x47c1ed(0x236)](_0x5870da);}},{'key':'_showHook','value':function _0x52494a(_0x1d89e7){var _0x35cde0=_0xf7c89a;_0x1d89e7?this['_addedHook']():(this['windData']&&(this['options'][_0x35cde0(0x1b1)]=this['windData']),this[_0x35cde0(0x22d)]());}},{'key':_0xf7c89a(0x1ed),'value':function _0x52797b(){var _0x3df327=_0xf7c89a;this['options']['worker']?this[_0x3df327(0x1ea)]():this['windField']=new CanvasWindField(this[_0x3df327(0x208)]);}},{'key':_0xf7c89a(0x1f6),'value':function _0x58cc60(){var _0x153fdc=_0xf7c89a;this['canvas']=this['_createCanvas'](),this['canvasContext']=this[_0x153fdc(0x1fd)]['getContext']('2d',{'willReadFrequently':!![]}),this['bindEvent'](),this['options'][_0x153fdc(0x1b1)]&&this[_0x153fdc(0x236)](this['options']['data']);}},{'key':'_removedHook','value':function _0xc2e9e(){var _0x5d506d=_0xf7c89a;this['clear'](),this['unbindEvent'](),this['canvas']&&(this['_map'][_0x5d506d(0x15a)][_0x5d506d(0x247)](this['canvas']),delete this['canvas']);}},{'key':'_createCanvas','value':function _0x3eaf91(){var _0xe8db7a=_0xf7c89a,_0xba2e03=document[_0xe8db7a(0x241)](_0xe8db7a(0x1fd));_0xba2e03['style']['position']=_0xe8db7a(0x1fb),_0xba2e03[_0xe8db7a(0x175)]['top']=_0xe8db7a(0x252),_0xba2e03[_0xe8db7a(0x175)][_0xe8db7a(0x230)]='0px',_0xba2e03[_0xe8db7a(0x175)][_0xe8db7a(0x238)]='100%',_0xba2e03[_0xe8db7a(0x175)][_0xe8db7a(0x232)]=_0xe8db7a(0x18e),_0xba2e03['style']['pointerEvents']=this['_pointerEvents']?'auto':'none',_0xba2e03['style']['zIndex']=0xa,_0xba2e03['setAttribute']('id','canvasWindy'),_0xba2e03['setAttribute']('class','canvasWindy'),this['_map']['container'][_0xe8db7a(0x1ae)](_0xba2e03);var _0x5cb754=this['_map']['scene'];return _0xba2e03['width']=_0x5cb754['canvas'][_0xe8db7a(0x1d9)],_0xba2e03[_0xe8db7a(0x232)]=_0x5cb754['canvas']['clientHeight'],_0xba2e03;}},{'key':'resize','value':function _0x897908(){var _0x4d88f6=_0xf7c89a;this['canvas']&&(this[_0x4d88f6(0x1fd)]['width']=this['canvasWidth'],this['canvas'][_0x4d88f6(0x232)]=this['canvasHeight']);}},{'key':'bindEvent','value':function _0x1a0597(){var _0x5ad78e=_0xf7c89a,_0x2a950e=this,_0x35bcda=Date[_0x5ad78e(0x220)]();(function _0x22b613(){var _0xf7568=_0x5ad78e;_0x2a950e['animateFrame']=window[_0xf7568(0x1a0)](_0x22b613);if(_0x2a950e['show']&&_0x2a950e[_0xf7568(0x1a9)]){var _0x54df36=Date['now'](),_0x1db07d=_0x54df36-_0x35bcda;_0x1db07d>_0x2a950e['frameTime']&&(_0x35bcda=_0x54df36-_0x1db07d%_0x2a950e[_0xf7568(0x1f5)],_0x2a950e[_0xf7568(0x229)]());}}(),window['addEventListener']('resize',this['resize']['bind'](this),![]),this['mouse_down']=![],this['mouse_move']=![],this['options']['mouseHidden']&&(this['_map']['on'](mars3d__namespace['EventType'][_0x5ad78e(0x20a)],this['_onMapWhellEvent'],this),this['_map']['on'](mars3d__namespace['EventType'][_0x5ad78e(0x15c)],this['_onMouseDownEvent'],this),this[_0x5ad78e(0x222)]['on'](mars3d__namespace[_0x5ad78e(0x1c2)]['mouseUp'],this['_onMouseUpEvent'],this)));}},{'key':_0xf7c89a(0x1bf),'value':function _0x108e90(){var _0x250bfd=_0xf7c89a;window['cancelAnimationFrame'](this['animateFrame']),delete this[_0x250bfd(0x1aa)],window['removeEventListener']('resize',this['resize']),this['options']['mouseHidden']&&(this['_map']['off'](mars3d__namespace[_0x250bfd(0x1c2)][_0x250bfd(0x20a)],this['_onMapWhellEvent'],this),this[_0x250bfd(0x222)]['off'](mars3d__namespace[_0x250bfd(0x1c2)]['mouseDown'],this[_0x250bfd(0x16a)],this),this['_map']['off'](mars3d__namespace['EventType'][_0x250bfd(0x1da)],this['_onMouseUpEvent'],this),this['_map']['off'](mars3d__namespace['EventType']['mouseMove'],this[_0x250bfd(0x244)],this));}},{'key':_0xf7c89a(0x24c),'value':function _0xd53e58(_0x254283){var _0x5562a5=_0xf7c89a,_0x143773=this;clearTimeout(this['refreshTimer']);if(!this['show']||!this['canvas'])return;this['canvas']['style']['visibility']='hidden',this[_0x5562a5(0x1eb)]=setTimeout(function(){var _0xf15c0d=_0x5562a5;if(!_0x143773['show'])return;_0x143773[_0xf15c0d(0x240)](),_0x143773[_0xf15c0d(0x1fd)]['style']['visibility']='visible';},0xc8);}},{'key':_0xf7c89a(0x16a),'value':function _0x5d68b5(_0x327e38){var _0x46098d=_0xf7c89a;this['mouse_down']=!![],this['_map']['off'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this),this['_map']['on'](mars3d__namespace['EventType']['mouseMove'],this[_0x46098d(0x244)],this);}},{'key':_0xf7c89a(0x244),'value':function _0x584783(_0x31a454){if(!this['show']||!this['canvas'])return;this['mouse_down']&&(this['canvas']['style']['visibility']='hidden',this['mouse_move']=!![]);}},{'key':'_onMouseUpEvent','value':function _0x5f566c(_0x5edc52){var _0x4f06bc=_0xf7c89a;if(!this[_0x4f06bc(0x1f9)]||!this['canvas'])return;this['_map']['off'](mars3d__namespace['EventType'][_0x4f06bc(0x1fa)],this['_onMouseMoveEvent'],this),this['mouse_down']&&this['mouse_move']&&this['redraw'](),this['canvas']['style']['visibility']=_0x4f06bc(0x1ca),this['mouse_down']=![],this['mouse_move']=![];}},{'key':'setData','value':function _0x151418(_0x36aac4){var _0x2b8a13=_0xf7c89a;this['clear'](),this[_0x2b8a13(0x174)]=_0x36aac4,this[_0x2b8a13(0x1a9)][_0x2b8a13(0x1e8)](_0x36aac4),this['redraw']();}},{'key':'redraw','value':function _0x422ce6(){var _0x14fab0=_0xf7c89a;if(!this['show'])return;this['windField'][_0x14fab0(0x170)](this['options']),this[_0x14fab0(0x229)]();}},{'key':_0xf7c89a(0x229),'value':function _0x34c368(){var _0x439648=_0xf7c89a;if(this['_updateIng'])return;this['_updateIng']=!![];if(this[_0x439648(0x191)])this['windField']['update']();else{var _0x50e9f8=this['windField']['getParticles']();this['_drawLines'](_0x50e9f8);}this['_updateIng']=![];}},{'key':_0xf7c89a(0x194),'value':function _0x2c271d(_0x1eb4d9){var _0x689fe9=_0xf7c89a;this['canvasContext'][_0x689fe9(0x159)]='destination-in',this['canvasContext'][_0x689fe9(0x237)](0x0,0x0,this[_0x689fe9(0x200)],this['canvasHeight']),this['canvasContext']['globalCompositeOperation']='lighter',this[_0x689fe9(0x1dd)][_0x689fe9(0x255)]=0.9,this[_0x689fe9(0x1dd)]['beginPath'](),this[_0x689fe9(0x1dd)]['lineWidth']=this['lineWidth'],this['canvasContext'][_0x689fe9(0x172)]=this['color'];var _0x33fa7f=this[_0x689fe9(0x222)]['scene']['mode']!==Cesium['SceneMode']['SCENE3D'];for(var _0x37796a=0x0,_0x5f1031=_0x1eb4d9[_0x689fe9(0x1e2)];_0x37796a<_0x5f1031;_0x37796a++){var _0x247dda=_0x1eb4d9[_0x37796a],_0x587f49=this['_tomap'](_0x247dda['lng'],_0x247dda[_0x689fe9(0x1a8)],_0x247dda),_0x35cd10=this[_0x689fe9(0x1c6)](_0x247dda[_0x689fe9(0x1f0)],_0x247dda['tlat'],_0x247dda);if(!_0x587f49||!_0x35cd10)continue;if(_0x33fa7f&&Math[_0x689fe9(0x24a)](_0x587f49[0x0]-_0x35cd10[0x0])>=this['canvasWidth'])continue;this['canvasContext']['moveTo'](_0x587f49[0x0],_0x587f49[0x1]),this['canvasContext']['lineTo'](_0x35cd10[0x0],_0x35cd10[0x1]);}this['canvasContext']['stroke']();}},{'key':'_tomap','value':function _0x232ae2(_0x4d088b,_0x3538d5,_0x54c12c){var _0x14e6e4=_0xf7c89a,_0x106bf5=Cesium['Cartesian3'][_0x14e6e4(0x187)](_0x4d088b,_0x3538d5,this['fixedHeight']),_0x164d29=this[_0x14e6e4(0x222)]['scene'];if(_0x164d29[_0x14e6e4(0x234)]===Cesium[_0x14e6e4(0x1e3)][_0x14e6e4(0x198)]){var _0x1271a7=new Cesium[(_0x14e6e4(0x23d))](_0x164d29['globe']['ellipsoid'],_0x164d29['camera']['positionWC']),_0x1e25a5=_0x1271a7['isPointVisible'](_0x106bf5);if(!_0x1e25a5)return _0x54c12c[_0x14e6e4(0x221)]=0x0,null;}var _0x41591f=Cesium[_0x14e6e4(0x1f7)]['wgs84ToWindowCoordinates'](this['_map']['scene'],_0x106bf5);return _0x41591f?[_0x41591f['x'],_0x41591f['y']]:null;}},{'key':'clear','value':function _0x186cfc(){this['windField']['clear'](),delete this['windData'];}},{'key':'initWorker','value':function _0x2698b4(){var _0x3a410b=_0xf7c89a,_0xdd7e9c=this;this[_0x3a410b(0x191)]=new Worker(this['options']['worker']),this['worker'][_0x3a410b(0x21c)]=function(_0x109355){var _0x5ad387=_0x3a410b;_0xdd7e9c['_drawLines'](_0x109355['data'][_0x5ad387(0x1fe)]),_0xdd7e9c['_updateIng2']=![];},this['windField']={'init':function _0x4775c5(_0x253947){var _0x3afde3=_0x3a410b;_0xdd7e9c[_0x3afde3(0x191)]['postMessage']({'type':'init','options':_0x253947});},'setOptions':function _0x34a13c(_0x5aeb38){var _0x5123b1=_0x3a410b;_0xdd7e9c[_0x5123b1(0x191)]['postMessage']({'type':_0x5123b1(0x170),'options':_0x5aeb38});},'setDate':function _0x15e3a3(_0x148557){_0xdd7e9c['worker']['postMessage']({'type':'setDate','data':_0x148557});},'update':function _0x5b0137(){if(_0xdd7e9c['_updateIng2'])return;_0xdd7e9c['_updateIng2']=!![],_0xdd7e9c['worker']['postMessage']({'type':'update'});},'clear':function _0x5c9f43(){var _0x241ea3=_0x3a410b;_0xdd7e9c[_0x241ea3(0x191)]['postMessage']({'type':_0x241ea3(0x253)});}},this['windField']['init'](this['options']);}}]),_0x48f148;}(BaseLayer);mars3d__namespace['LayerUtil'][_0x521b0e(0x225)]('canvasWind',CanvasWindLayer),mars3d__namespace['layer']['CanvasWindLayer']=CanvasWindLayer,mars3d__namespace[_0x521b0e(0x1b3)]=CanvasWindField,mars3d__namespace[_0x521b0e(0x1e0)]=WindUtil,exports['CanvasWindField']=CanvasWindField,exports['CanvasWindLayer']=CanvasWindLayer,exports[_0x521b0e(0x17b)]=WindLayer,exports[_0x521b0e(0x1e0)]=WindUtil,Object['defineProperty'](exports,'__esModule',{'value':!![]});
|
|
15
15
|
}));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mars3d-wind",
|
|
3
|
-
"version": "3.4.
|
|
3
|
+
"version": "3.4.21",
|
|
4
4
|
"description": "Mars3D平台插件,支持气象 风向图 功能插件",
|
|
5
5
|
"main": "dist/mars3d-wind.js",
|
|
6
6
|
"files": [
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
],
|
|
9
9
|
"dependencies": {},
|
|
10
10
|
"devDependencies": {
|
|
11
|
-
"mars3d": "~3.4.
|
|
11
|
+
"mars3d": "~3.4.21"
|
|
12
12
|
},
|
|
13
13
|
"scripts": {
|
|
14
14
|
"lint": "eslint ./src/**/*.{js,ts} --fix"
|