mars3d-wind 3.4.18 → 3.4.19

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.
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Mars3D平台插件,支持气象 风向图 功能插件 mars3d-wind
3
3
  *
4
- * 版本信息:v3.4.18
5
- * 编译日期:2022-12-19 13:26:23
4
+ * 版本信息:v3.4.19
5
+ * 编译日期:2022-12-26 19:59:16
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 _0x5a552b=_0x33f8;(function(_0x265c48,_0x2e4c56){var _0x244c33=_0x33f8,_0x517767=_0x265c48();while(!![]){try{var _0x43caac=parseInt(_0x244c33(0x21e))/0x1+-parseInt(_0x244c33(0x28d))/0x2*(parseInt(_0x244c33(0x2c6))/0x3)+-parseInt(_0x244c33(0x209))/0x4+parseInt(_0x244c33(0x290))/0x5+-parseInt(_0x244c33(0x25e))/0x6*(-parseInt(_0x244c33(0x2cd))/0x7)+-parseInt(_0x244c33(0x254))/0x8+parseInt(_0x244c33(0x286))/0x9;if(_0x43caac===_0x2e4c56)break;else _0x517767['push'](_0x517767['shift']());}catch(_0xf6b39e){_0x517767['push'](_0x517767['shift']());}}}(_0x39ed,0x65e80));function _0x33f8(_0x4ad565,_0x4f6454){var _0x39ed30=_0x39ed();return _0x33f8=function(_0x33f807,_0x1628c1){_0x33f807=_0x33f807-0x1e5;var _0x16f9d3=_0x39ed30[_0x33f807];return _0x16f9d3;},_0x33f8(_0x4ad565,_0x4f6454);}function _interopNamespace(_0x4e0201){var _0x1edbcf=_0x33f8;if(_0x4e0201&&_0x4e0201[_0x1edbcf(0x2a5)])return _0x4e0201;var _0x278fc2=Object['create'](null);return _0x4e0201&&Object[_0x1edbcf(0x2ba)](_0x4e0201)[_0x1edbcf(0x257)](function(_0x4cd654){var _0x4c8a1f=_0x1edbcf;if(_0x4cd654!==_0x4c8a1f(0x22a)){var _0x27bd84=Object['getOwnPropertyDescriptor'](_0x4e0201,_0x4cd654);Object[_0x4c8a1f(0x2cc)](_0x278fc2,_0x4cd654,_0x27bd84['get']?_0x27bd84:{'enumerable':!![],'get':function(){return _0x4e0201[_0x4cd654];}});}}),_0x278fc2[_0x1edbcf(0x22a)]=_0x4e0201,_0x278fc2;}var mars3d__namespace=_interopNamespace(mars3d),Cesium$7=mars3d__namespace['Cesium'];function getU(_0x2c36b8,_0x31f219){var _0x15c0e7=_0x33f8,_0x490f45=_0x2c36b8*Math['cos'](Cesium$7['Math'][_0x15c0e7(0x270)](_0x31f219));return _0x490f45;}function getV(_0x5722be,_0xa4b679){var _0x20f415=_0x33f8,_0x4f1aad=_0x5722be*Math[_0x20f415(0x287)](Cesium$7['Math']['toRadians'](_0xa4b679));return _0x4f1aad;}function getSpeed(_0x2bbcff,_0x916b8e){var _0x3e4312=Math['sqrt'](Math['pow'](_0x2bbcff,0x2)+Math['pow'](_0x916b8e,0x2));return _0x3e4312;}function getDirection(_0x219308,_0x5dec93){var _0x5b2dc4=_0x33f8,_0x3f1f01=Cesium$7['Math'][_0x5b2dc4(0x246)](Math[_0x5b2dc4(0x2bf)](_0x5dec93,_0x219308));return _0x3f1f01+=_0x3f1f01<0x0?0x168:0x0,_0x3f1f01;}var WindUtil={'__proto__':null,'getU':getU,'getV':getV,'getSpeed':getSpeed,'getDirection':getDirection};function ownKeys(_0x14bb13,_0x501f59){var _0x1a23aa=_0x33f8,_0x3cc839=Object['keys'](_0x14bb13);if(Object['getOwnPropertySymbols']){var _0x592439=Object['getOwnPropertySymbols'](_0x14bb13);_0x501f59&&(_0x592439=_0x592439[_0x1a23aa(0x272)](function(_0x3bce17){var _0x48210d=_0x1a23aa;return Object['getOwnPropertyDescriptor'](_0x14bb13,_0x3bce17)[_0x48210d(0x26a)];})),_0x3cc839[_0x1a23aa(0x241)]['apply'](_0x3cc839,_0x592439);}return _0x3cc839;}function _objectSpread2(_0x4754ed){var _0x3f8bf1=_0x33f8;for(var _0x2ade92=0x1;_0x2ade92<arguments['length'];_0x2ade92++){var _0x331493=null!=arguments[_0x2ade92]?arguments[_0x2ade92]:{};_0x2ade92%0x2?ownKeys(Object(_0x331493),!0x0)['forEach'](function(_0x355bd){_defineProperty(_0x4754ed,_0x355bd,_0x331493[_0x355bd]);}):Object['getOwnPropertyDescriptors']?Object['defineProperties'](_0x4754ed,Object[_0x3f8bf1(0x2d5)](_0x331493)):ownKeys(Object(_0x331493))['forEach'](function(_0x4e3444){var _0x4dfbd6=_0x3f8bf1;Object['defineProperty'](_0x4754ed,_0x4e3444,Object[_0x4dfbd6(0x2de)](_0x331493,_0x4e3444));});}return _0x4754ed;}function _classCallCheck(_0x3b086b,_0xc37a6e){if(!(_0x3b086b instanceof _0xc37a6e))throw new TypeError('Cannot\x20call\x20a\x20class\x20as\x20a\x20function');}function _defineProperties(_0x2fa8ef,_0x44c4fc){var _0x3a3fab=_0x33f8;for(var _0x11acb0=0x0;_0x11acb0<_0x44c4fc[_0x3a3fab(0x23f)];_0x11acb0++){var _0x5b2426=_0x44c4fc[_0x11acb0];_0x5b2426['enumerable']=_0x5b2426['enumerable']||![],_0x5b2426['configurable']=!![];if('value'in _0x5b2426)_0x5b2426['writable']=!![];Object[_0x3a3fab(0x2cc)](_0x2fa8ef,_0x5b2426['key'],_0x5b2426);}}function _createClass(_0x5883b9,_0x5c6618,_0x563f70){var _0x179fa0=_0x33f8;if(_0x5c6618)_defineProperties(_0x5883b9['prototype'],_0x5c6618);if(_0x563f70)_defineProperties(_0x5883b9,_0x563f70);return Object['defineProperty'](_0x5883b9,_0x179fa0(0x21c),{'writable':![]}),_0x5883b9;}function _defineProperty(_0x1c3269,_0x4175bd,_0x2fdb4e){var _0x558a6f=_0x33f8;return _0x4175bd in _0x1c3269?Object[_0x558a6f(0x2cc)](_0x1c3269,_0x4175bd,{'value':_0x2fdb4e,'enumerable':!![],'configurable':!![],'writable':!![]}):_0x1c3269[_0x4175bd]=_0x2fdb4e,_0x1c3269;}function _inherits(_0x221b1e,_0x2b5ccd){var _0x18685b=_0x33f8;if(typeof _0x2b5ccd!=='function'&&_0x2b5ccd!==null)throw new TypeError(_0x18685b(0x22b));_0x221b1e[_0x18685b(0x21c)]=Object['create'](_0x2b5ccd&&_0x2b5ccd['prototype'],{'constructor':{'value':_0x221b1e,'writable':!![],'configurable':!![]}}),Object['defineProperty'](_0x221b1e,'prototype',{'writable':![]});if(_0x2b5ccd)_setPrototypeOf(_0x221b1e,_0x2b5ccd);}function _getPrototypeOf(_0x1cbd83){var _0x553954=_0x33f8;return _getPrototypeOf=Object['setPrototypeOf']?Object['getPrototypeOf'][_0x553954(0x26c)]():function _0x5915f1(_0x126174){var _0x1fb130=_0x553954;return _0x126174[_0x1fb130(0x2c8)]||Object[_0x1fb130(0x237)](_0x126174);},_getPrototypeOf(_0x1cbd83);}function _setPrototypeOf(_0x588a6f,_0x34390d){return _setPrototypeOf=Object['setPrototypeOf']?Object['setPrototypeOf']['bind']():function _0x4946f9(_0xd89017,_0x588d7d){return _0xd89017['__proto__']=_0x588d7d,_0xd89017;},_setPrototypeOf(_0x588a6f,_0x34390d);}function _isNativeReflectConstruct(){var _0x38f1f4=_0x33f8;if(typeof Reflect===_0x38f1f4(0x25b)||!Reflect['construct'])return![];if(Reflect['construct'][_0x38f1f4(0x212)])return![];if(typeof Proxy==='function')return!![];try{return Boolean['prototype']['valueOf'][_0x38f1f4(0x255)](Reflect['construct'](Boolean,[],function(){})),!![];}catch(_0x416f92){return![];}}function _assertThisInitialized(_0x5e51b7){if(_0x5e51b7===void 0x0)throw new ReferenceError('this\x20hasn\x27t\x20been\x20initialised\x20-\x20super()\x20hasn\x27t\x20been\x20called');return _0x5e51b7;}function _possibleConstructorReturn(_0x4016f5,_0x480602){if(_0x480602&&(typeof _0x480602==='object'||typeof _0x480602==='function'))return _0x480602;else{if(_0x480602!==void 0x0)throw new TypeError('Derived\x20constructors\x20may\x20only\x20return\x20object\x20or\x20undefined');}return _assertThisInitialized(_0x4016f5);}function _createSuper(_0x415369){var _0x2e086f=_isNativeReflectConstruct();return function _0x241d7e(){var _0x4aa707=_0x33f8,_0x2e8701=_getPrototypeOf(_0x415369),_0x4e61df;if(_0x2e086f){var _0x4496d3=_getPrototypeOf(this)['constructor'];_0x4e61df=Reflect[_0x4aa707(0x24d)](_0x2e8701,arguments,_0x4496d3);}else _0x4e61df=_0x2e8701['apply'](this,arguments);return _possibleConstructorReturn(this,_0x4e61df);};}function _toConsumableArray(_0x3589d9){return _arrayWithoutHoles(_0x3589d9)||_iterableToArray(_0x3589d9)||_unsupportedIterableToArray(_0x3589d9)||_nonIterableSpread();}function _arrayWithoutHoles(_0x20eace){var _0x473385=_0x33f8;if(Array[_0x473385(0x283)](_0x20eace))return _arrayLikeToArray(_0x20eace);}function _iterableToArray(_0x5d30cb){var _0x30d5e4=_0x33f8;if(typeof Symbol!==_0x30d5e4(0x25b)&&_0x5d30cb[Symbol['iterator']]!=null||_0x5d30cb['@@iterator']!=null)return Array['from'](_0x5d30cb);}function _unsupportedIterableToArray(_0x37217a,_0x20ac9d){var _0x5da1a3=_0x33f8;if(!_0x37217a)return;if(typeof _0x37217a==='string')return _arrayLikeToArray(_0x37217a,_0x20ac9d);var _0xda78c3=Object['prototype']['toString']['call'](_0x37217a)['slice'](0x8,-0x1);if(_0xda78c3==='Object'&&_0x37217a['constructor'])_0xda78c3=_0x37217a['constructor'][_0x5da1a3(0x285)];if(_0xda78c3==='Map'||_0xda78c3==='Set')return Array[_0x5da1a3(0x258)](_0x37217a);if(_0xda78c3==='Arguments'||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/['test'](_0xda78c3))return _arrayLikeToArray(_0x37217a,_0x20ac9d);}function _0x39ed(){var _0x3183cd=['latRange','particlesComputing','resize','style','onmessage','addEventListener','drawingBufferHeight','redraw','mod','TRIANGLES','refreshTimer','commandList','grid','umax','all','currentTrailsDepth','_createCanvas','primitiveType','vertexShaderSource','Geometry','RGBA','Texture','_showHook','2628648ActGnp','createTexture','trails','Cartesian3','100%','setOptions','blending','umin','ClearCommand','sham','xmax','updateViewerParameters','array','_onMapWhellEvent','defined','lev','_addedHook','vmax','vertexArray','prototype','getOptions','557835sWxixL','mouse_move','depthTexture','framebuffer','_calc_speedRate','_updateIng2','BufferUsage','reverse','sqrt','_onMouseUpEvent','beginPath','pointerEvents','default','Super\x20expression\x20must\x20either\x20be\x20null\x20or\x20a\x20function','nextTrails','viewerParameters','Cesium','max','scene','speedRate','getDefaultRenderState','preExecute','canvasWindy','framebuffers','height','getPrototypeOf','segments','random','worker','fadeOpacity','ymin','geometry','getUVByPoint','length','//\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}','push','CanvasWindField','_maxAge','RenderState','cols','toDegrees','PixelFormat','particleSystem','Color','pixelSize','windTextures','particlesNumber','construct','SceneTransforms','SCENE3D','depthMask','mouse_down','speedFactor','ShaderSource','998640dxHexI','call','removeChild','forEach','from','min','postProcessingPosition','undefined','getUVByXY','preRender','6294fLskkC','#ffffff','tlat','canvasWidth','TextureMagnificationFilter','_onMouseMoveEvent','bindEvent','currentTrails','udata','xmin','nextTrailsDepth','_data','enumerable','_pointerEvents','bind','PI_OVER_THREE','particlesRendering','CanvasWindLayer','toRadians','WindUtil','filter','createSegmentsGeometry','fromCache','rawRenderState','data','currentParticlesSpeed','_calcUV','floor','getColorTexture','east','postMessage','mouseUp','clearCommand','west','Draw','_canrefresh','currentParticlesPosition','isArray','setData','name','1130535lZGWSC','sin','color','wheel','off','OPAQUE','viewRectangleToLonLatRange','400hbzCau','auto','DepthFunction','1913315qboqHZ','shaderProgram','animateFrame','levmax','container','commandType','rows','maxParticles','none','dimensions','PixelDatatype','tlng','lat','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}','0px','createComputingPrimitives','RGB','removeAll','FLOAT','SceneMode','Compute','__esModule','globalAlpha','DrawCommand','maxAge','canvas','mode','mouseMove','now','STATIC_DRAW','removeEventListener','DISABLE_LOG_DEPTH_FRAGMENT_WRITE','createParticlesTextures','add','nextParticlesSpeed','_randomParticle','_drawLines','lon','update','createFramebuffer','textures','context','keys','clear','canvasHeight','canvasContext','age','atan2','getParticles','_setOptionsHook','moveTo','fixedHeight','destroy','uniformMap','5286YSnCPL','IDENTITY','__proto__','globalCompositeOperation','_map','once','defineProperty','3241rhRawD','show','width','ComponentDatatype','commandToExecute','primitives','apply','canvasResize','getOwnPropertyDescriptors','options','colorTable','randomizeParticles','particlesTextures','PrimitiveType','EventType','visibility','vdata','getOwnPropertyDescriptor','LINEAR','createRenderingPrimitives','VertexArray','NEAREST','fromGeometry','lighter','windField','getRandomLatLng','left','windData','lng','lonRange','Math','wgs84ToWindowCoordinates','Pass','postProcessingSpeed'];_0x39ed=function(){return _0x3183cd;};return _0x39ed();}function _arrayLikeToArray(_0x4b2541,_0x180b8f){var _0x49457d=_0x33f8;if(_0x180b8f==null||_0x180b8f>_0x4b2541[_0x49457d(0x23f)])_0x180b8f=_0x4b2541['length'];for(var _0x30ec41=0x0,_0x2177a3=new Array(_0x180b8f);_0x30ec41<_0x180b8f;_0x30ec41++)_0x2177a3[_0x30ec41]=_0x4b2541[_0x30ec41];return _0x2177a3;}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[_0x5a552b(0x22e)],CustomPrimitive=(function(){var _0x5cd784=_0x5a552b;function _0x16d8f1(_0x4550a4){var _0x2e14a2=_0x33f8,_0x39b0a2;_classCallCheck(this,_0x16d8f1),this[_0x2e14a2(0x295)]=_0x4550a4['commandType'],this['geometry']=_0x4550a4['geometry'],this['attributeLocations']=_0x4550a4['attributeLocations'],this[_0x2e14a2(0x203)]=_0x4550a4['primitiveType'],this['uniformMap']=_0x4550a4['uniformMap'],this['vertexShaderSource']=_0x4550a4['vertexShaderSource'],this['fragmentShaderSource']=_0x4550a4['fragmentShaderSource'],this[_0x2e14a2(0x275)]=_0x4550a4['rawRenderState'],this['framebuffer']=_0x4550a4['framebuffer'],this['outputTexture']=_0x4550a4['outputTexture'],this['autoClear']=(_0x39b0a2=_0x4550a4['autoClear'])!==null&&_0x39b0a2!==void 0x0?_0x39b0a2:![],this[_0x2e14a2(0x233)]=_0x4550a4['preExecute'],this['show']=!![],this['commandToExecute']=undefined,this[_0x2e14a2(0x27e)]=undefined,this['autoClear']&&(this[_0x2e14a2(0x27e)]=new Cesium$6['ClearCommand']({'color':new Cesium$6['Color'](0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this[_0x2e14a2(0x221)],'pass':Cesium$6['Pass'][_0x2e14a2(0x28b)]}));}return _createClass(_0x16d8f1,[{'key':'createCommand','value':function _0xc20136(_0x43bced){var _0x11aff2=_0x33f8;switch(this['commandType']){case _0x11aff2(0x280):{var _0x17786d=Cesium$6['VertexArray']['fromGeometry']({'context':_0x43bced,'geometry':this[_0x11aff2(0x23d)],'attributeLocations':this['attributeLocations'],'bufferUsage':Cesium$6[_0x11aff2(0x224)]['STATIC_DRAW']}),_0xf8ab63=Cesium$6['ShaderProgram'][_0x11aff2(0x274)]({'context':_0x43bced,'attributeLocations':this['attributeLocations'],'vertexShaderSource':this[_0x11aff2(0x204)],'fragmentShaderSource':this['fragmentShaderSource']}),_0x35dc19=Cesium$6[_0x11aff2(0x244)]['fromCache'](this['rawRenderState']);return new Cesium$6[(_0x11aff2(0x2a7))]({'primitiveType':this['primitiveType'],'shaderProgram':_0xf8ab63,'vertexArray':_0x17786d,'modelMatrix':Cesium$6['Matrix4'][_0x11aff2(0x2c7)],'renderState':_0x35dc19,'uniformMap':this['uniformMap'],'castShadows':![],'receiveShadows':![],'framebuffer':this['framebuffer'],'pass':Cesium$6[_0x11aff2(0x1f0)][_0x11aff2(0x28b)],'pickOnly':!![],'owner':this});}case'Compute':{return new Cesium$6['ComputeCommand']({'owner':this,'fragmentShaderSource':this['fragmentShaderSource'],'uniformMap':this[_0x11aff2(0x2c5)],'outputTexture':this['outputTexture'],'persists':!![]});}}}},{'key':'setGeometry','value':function _0x5dcaeb(_0x43c1f8,_0x382d5c){var _0x299a7d=_0x33f8;this['geometry']=_0x382d5c;var _0x29d51c=Cesium$6[_0x299a7d(0x2e1)]['fromGeometry']({'context':_0x43c1f8,'geometry':this['geometry'],'attributeLocations':this['attributeLocations'],'bufferUsage':Cesium$6[_0x299a7d(0x224)][_0x299a7d(0x2ad)]});this['commandToExecute']['vertexArray']=_0x29d51c;}},{'key':'update','value':function _0x5c8f97(_0x5e5079){var _0x44110c=_0x33f8;if(!this['show'])return;if(_0x5e5079['mode']!==Cesium$6[_0x44110c(0x2a3)]['SCENE3D'])return;!Cesium$6['defined'](this['commandToExecute'])&&(this['commandToExecute']=this['createCommand'](_0x5e5079['context'])),Cesium$6[_0x44110c(0x217)](this['preExecute'])&&this['preExecute'](),Cesium$6[_0x44110c(0x217)](this['clearCommand'])&&_0x5e5079[_0x44110c(0x1fd)]['push'](this['clearCommand']),_0x5e5079['commandList']['push'](this['commandToExecute']);}},{'key':'isDestroyed','value':function _0x57bcf2(){return![];}},{'key':_0x5cd784(0x2c4),'value':function _0xcf3a42(){var _0x51614a=_0x5cd784;if(this['clearCommand']){var _0x5d4784,_0x58a7e8;(_0x5d4784=this['clearCommand'])!==null&&_0x5d4784!==void 0x0&&_0x5d4784[_0x51614a(0x21b)]&&this['clearCommand'][_0x51614a(0x21b)]['destroy'](),(_0x58a7e8=this['clearCommand'])!==null&&_0x58a7e8!==void 0x0&&_0x58a7e8[_0x51614a(0x291)]&&this['clearCommand']['shaderProgram']['destroy'](),delete this['clearCommand'];}return this['commandToExecute']&&(this['commandToExecute']['vertexArray']&&this[_0x51614a(0x2d1)][_0x51614a(0x21b)]['destroy'](),this['commandToExecute'][_0x51614a(0x291)]&&this['commandToExecute']['shaderProgram'][_0x51614a(0x2c4)](),delete this[_0x51614a(0x2d1)]),Cesium$6['destroyObject'](this);}}]),_0x16d8f1;}()),Cesium$5=mars3d__namespace['Cesium'],Util=(function(){var _0x1aaa12=function _0x315f5b(){var _0x874079=_0x33f8,_0x6a6f8f=new Cesium$5[(_0x874079(0x205))]({'attributes':new Cesium$5['GeometryAttributes']({'position':new Cesium$5['GeometryAttribute']({'componentDatatype':Cesium$5['ComponentDatatype'][_0x874079(0x2a2)],'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[_0x874079(0x2d0)][_0x874079(0x2a2)],'componentsPerAttribute':0x2,'values':new Float32Array([0x0,0x0,0x1,0x0,0x1,0x1,0x0,0x1])})}),'indices':new Uint32Array([0x3,0x2,0x0,0x0,0x2,0x1])});return _0x6a6f8f;},_0x1090d7=function _0x3193c5(_0x29e223,_0x51babd){var _0x325f24=_0x33f8;if(Cesium$5[_0x325f24(0x217)](_0x51babd)){var _0x30a675={};_0x30a675['arrayBufferView']=_0x51babd,_0x29e223['source']=_0x30a675;}var _0x1a162c=new Cesium$5[(_0x325f24(0x207))](_0x29e223);return _0x1a162c;},_0xa9ec9d=function _0x41e7f2(_0x4bc648,_0x409e82,_0x5ab613){var _0x403fb1=new Cesium$5['Framebuffer']({'context':_0x4bc648,'colorTextures':[_0x409e82],'depthTexture':_0x5ab613});return _0x403fb1;},_0x347163=function _0x1ee14b(_0x1fe60c){var _0x5de1c0=_0x33f8,_0x9af8ce=!![],_0x1968c7=![],_0x3d22a5={'viewport':_0x1fe60c['viewport'],'depthTest':_0x1fe60c['depthTest'],'depthMask':_0x1fe60c[_0x5de1c0(0x250)],'blending':_0x1fe60c[_0x5de1c0(0x20f)]},_0x1d15fc=Cesium$5['Appearance'][_0x5de1c0(0x232)](_0x9af8ce,_0x1968c7,_0x3d22a5);return _0x1d15fc;},_0x1f62e1=function _0x66d14f(_0x167c1c){var _0x2d1f57=_0x33f8,_0x13842d={},_0x446c58=Cesium$5['Math'][_0x2d1f57(0x1fa)](_0x167c1c[_0x2d1f57(0x27f)],Cesium$5['Math']['TWO_PI']),_0x2ac53d=Cesium$5['Math']['mod'](_0x167c1c[_0x2d1f57(0x27b)],Cesium$5['Math']['TWO_PI']),_0x412c46=_0x167c1c[_0x2d1f57(0x2cf)],_0x2d4420,_0x4bba92;_0x412c46>Cesium$5[_0x2d1f57(0x1ee)]['THREE_PI_OVER_TWO']?(_0x2d4420=0x0,_0x4bba92=Cesium$5['Math']['TWO_PI']):_0x2ac53d-_0x446c58<_0x412c46?(_0x2d4420=_0x446c58,_0x4bba92=_0x446c58+_0x412c46):(_0x2d4420=_0x446c58,_0x4bba92=_0x2ac53d);_0x13842d[_0x2d1f57(0x2b5)]={'min':Cesium$5[_0x2d1f57(0x1ee)]['toDegrees'](_0x2d4420),'max':Cesium$5[_0x2d1f57(0x1ee)]['toDegrees'](_0x4bba92)};var _0x3362e5=_0x167c1c['south'],_0x2fade8=_0x167c1c['north'],_0x24aa9f=_0x167c1c[_0x2d1f57(0x236)],_0x47df02=_0x24aa9f>Cesium$5['Math']['PI']/0xc?_0x24aa9f/0x2:0x0,_0x4587d5=Cesium$5['Math']['clampToLatitudeRange'](_0x3362e5-_0x47df02),_0x3d677d=Cesium$5['Math']['clampToLatitudeRange'](_0x2fade8+_0x47df02);return _0x4587d5<-Cesium$5['Math']['PI_OVER_THREE']&&(_0x4587d5=-Cesium$5[_0x2d1f57(0x1ee)]['PI_OVER_TWO']),_0x3d677d>Cesium$5['Math'][_0x2d1f57(0x26d)]&&(_0x3d677d=Cesium$5['Math']['PI_OVER_TWO']),_0x13842d['lat']={'min':Cesium$5['Math']['toDegrees'](_0x4587d5),'max':Cesium$5['Math']['toDegrees'](_0x3d677d)},_0x13842d;};return{'getFullscreenQuad':_0x1aaa12,'createTexture':_0x1090d7,'createFramebuffer':_0xa9ec9d,'createRawRenderState':_0x347163,'viewRectangleToLonLatRange':_0x1f62e1};}()),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=_0x5a552b(0x29d),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[_0x5a552b(0x22e)],ParticlesRendering=(function(){var _0x16f02e=_0x5a552b;function _0x28198a(_0x126e4a,_0x5719b6,_0x320c53,_0x1b4cad,_0x271c19){var _0x52bc06=_0x33f8;_classCallCheck(this,_0x28198a),this['createRenderingTextures'](_0x126e4a,_0x5719b6,_0x320c53['colors']),this['createRenderingFramebuffers'](_0x126e4a),this[_0x52bc06(0x2e0)](_0x126e4a,_0x320c53,_0x1b4cad,_0x271c19);}return _createClass(_0x28198a,[{'key':'createRenderingTextures','value':function _0xf9f29b(_0x5b6c76,_0xc0e077,_0x25edf6){var _0x2a94f5=_0x33f8,_0x153c84={'context':_0x5b6c76,'width':_0x5b6c76['drawingBufferWidth'],'height':_0x5b6c76[_0x2a94f5(0x1f8)],'pixelFormat':Cesium$4['PixelFormat'][_0x2a94f5(0x206)],'pixelDatatype':Cesium$4[_0x2a94f5(0x29a)]['UNSIGNED_BYTE']},_0x58106c={'context':_0x5b6c76,'width':_0x5b6c76['drawingBufferWidth'],'height':_0x5b6c76['drawingBufferHeight'],'pixelFormat':Cesium$4['PixelFormat']['DEPTH_COMPONENT'],'pixelDatatype':Cesium$4['PixelDatatype']['UNSIGNED_INT']},_0x2b096a=_0x25edf6['length'],_0x4edc9c=new Float32Array(_0x2b096a*0x3);for(var _0x2bcd6c=0x0;_0x2bcd6c<_0x2b096a;_0x2bcd6c++){var _0x5aad89=Cesium$4[_0x2a94f5(0x249)]['fromCssColorString'](_0x25edf6[_0x2bcd6c]);_0x4edc9c[0x3*_0x2bcd6c]=_0x5aad89['red'],_0x4edc9c[0x3*_0x2bcd6c+0x1]=_0x5aad89['green'],_0x4edc9c[0x3*_0x2bcd6c+0x2]=_0x5aad89['blue'];}var _0x4c6aae={'context':_0x5b6c76,'width':_0x2b096a,'height':0x1,'pixelFormat':Cesium$4[_0x2a94f5(0x247)][_0x2a94f5(0x2a0)],'pixelDatatype':Cesium$4['PixelDatatype']['FLOAT'],'sampler':new Cesium$4['Sampler']({'minificationFilter':Cesium$4['TextureMinificationFilter'][_0x2a94f5(0x2df)],'magnificationFilter':Cesium$4[_0x2a94f5(0x262)]['LINEAR']})};this[_0x2a94f5(0x2b8)]={'segmentsColor':Util['createTexture'](_0x153c84),'segmentsDepth':Util[_0x2a94f5(0x20a)](_0x58106c),'currentTrailsColor':Util[_0x2a94f5(0x20a)](_0x153c84),'currentTrailsDepth':Util['createTexture'](_0x58106c),'nextTrailsColor':Util[_0x2a94f5(0x20a)](_0x153c84),'nextTrailsDepth':Util['createTexture'](_0x58106c),'colorTable':Util['createTexture'](_0x4c6aae,_0x4edc9c)};}},{'key':'createRenderingFramebuffers','value':function _0x1c8841(_0x499c01){var _0x26b3eb=_0x33f8;this['framebuffers']={'segments':Util[_0x26b3eb(0x2b7)](_0x499c01,this[_0x26b3eb(0x2b8)]['segmentsColor'],this['textures']['segmentsDepth']),'currentTrails':Util['createFramebuffer'](_0x499c01,this[_0x26b3eb(0x2b8)]['currentTrailsColor'],this['textures'][_0x26b3eb(0x201)]),'nextTrails':Util[_0x26b3eb(0x2b7)](_0x499c01,this['textures']['nextTrailsColor'],this['textures'][_0x26b3eb(0x268)])};}},{'key':_0x16f02e(0x273),'value':function _0x15104e(_0x309400){var _0x463bee=_0x16f02e,_0x18c10b=0x4,_0x146e0e=[];for(var _0x1603e4=0x0;_0x1603e4<_0x309400['particlesTextureSize'];_0x1603e4++){for(var _0x20ef1c=0x0;_0x20ef1c<_0x309400['particlesTextureSize'];_0x20ef1c++){for(var _0x52b81f=0x0;_0x52b81f<_0x18c10b;_0x52b81f++){_0x146e0e['push'](_0x1603e4/_0x309400['particlesTextureSize']),_0x146e0e['push'](_0x20ef1c/_0x309400['particlesTextureSize']);}}}_0x146e0e=new Float32Array(_0x146e0e);var _0x20ff39=[],_0x82a647=[-0x1,0x1],_0x3adc98=[-0x1,0x1];for(var _0x1e84f9=0x0;_0x1e84f9<_0x309400['maxParticles'];_0x1e84f9++){for(var _0x519f73=0x0;_0x519f73<_0x18c10b/0x2;_0x519f73++){for(var _0x45cc05=0x0;_0x45cc05<_0x18c10b/0x2;_0x45cc05++){_0x20ff39['push'](_0x82a647[_0x519f73]),_0x20ff39[_0x463bee(0x241)](_0x3adc98[_0x45cc05]),_0x20ff39[_0x463bee(0x241)](0x0);}}}_0x20ff39=new Float32Array(_0x20ff39);var _0x3af259=0x6*_0x309400[_0x463bee(0x297)],_0x21d59a=new Uint32Array(_0x3af259);for(var _0x5880c2=0x0,_0x536c5b=0x0,_0x25ad96=0x0;_0x5880c2<_0x309400['maxParticles'];_0x5880c2++){_0x21d59a[_0x536c5b++]=_0x25ad96+0x0,_0x21d59a[_0x536c5b++]=_0x25ad96+0x1,_0x21d59a[_0x536c5b++]=_0x25ad96+0x2,_0x21d59a[_0x536c5b++]=_0x25ad96+0x2,_0x21d59a[_0x536c5b++]=_0x25ad96+0x1,_0x21d59a[_0x536c5b++]=_0x25ad96+0x3,_0x25ad96+=0x4;}var _0x534e3e=new Cesium$4['Geometry']({'attributes':new Cesium$4['GeometryAttributes']({'st':new Cesium$4['GeometryAttribute']({'componentDatatype':Cesium$4['ComponentDatatype']['FLOAT'],'componentsPerAttribute':0x2,'values':_0x146e0e}),'normal':new Cesium$4['GeometryAttribute']({'componentDatatype':Cesium$4[_0x463bee(0x2d0)][_0x463bee(0x2a2)],'componentsPerAttribute':0x3,'values':_0x20ff39})}),'indices':_0x21d59a});return _0x534e3e;}},{'key':'createRenderingPrimitives','value':function _0x3c8354(_0x2dda30,_0xf7ac7c,_0xff2491,_0xe2b985){var _0x5a34f8=_0x16f02e,_0x525172=this;this['primitives']={'segments':new CustomPrimitive({'commandType':'Draw','attributeLocations':{'st':0x0,'normal':0x1},'geometry':this[_0x5a34f8(0x273)](_0xf7ac7c),'primitiveType':Cesium$4['PrimitiveType']['TRIANGLES'],'uniformMap':{'currentParticlesPosition':function _0x336a9e(){var _0xc7bfc5=_0x5a34f8;return _0xe2b985[_0xc7bfc5(0x2d9)]['currentParticlesPosition'];},'postProcessingPosition':function _0x1771ef(){return _0xe2b985['particlesTextures']['postProcessingPosition'];},'postProcessingSpeed':function _0x1c71db(){return _0xe2b985['particlesTextures']['postProcessingSpeed'];},'colorTable':function _0x454b8d(){return _0x525172['textures']['colorTable'];},'aspect':function _0x4b6ee9(){return _0x2dda30['drawingBufferWidth']/_0x2dda30['drawingBufferHeight'];},'pixelSize':function _0x25f464(){return _0xff2491['pixelSize'];},'lineWidth':function _0x4c4665(){return _0xf7ac7c['lineWidth'];},'particleHeight':function _0x35a2d8(){return _0xf7ac7c['particleHeight'];}},'vertexShaderSource':new Cesium$4['ShaderSource']({'sources':[segmentDraw_vert]}),'fragmentShaderSource':new Cesium$4['ShaderSource']({'sources':[segmentDraw_frag]}),'rawRenderState':Util['createRawRenderState']({'viewport':undefined,'depthTest':{'enabled':!![]},'depthMask':!![]}),'framebuffer':this['framebuffers']['segments'],'autoClear':!![]}),'trails':new CustomPrimitive({'commandType':_0x5a34f8(0x280),'attributeLocations':{'position':0x0,'st':0x1},'geometry':Util['getFullscreenQuad'](),'primitiveType':Cesium$4[_0x5a34f8(0x2da)]['TRIANGLES'],'uniformMap':{'segmentsColorTexture':function _0x27295f(){return _0x525172['textures']['segmentsColor'];},'segmentsDepthTexture':function _0x4805c9(){return _0x525172['textures']['segmentsDepth'];},'currentTrailsColor':function _0x82d23a(){var _0x74944a=_0x5a34f8;return _0x525172['framebuffers']['currentTrails'][_0x74944a(0x27a)](0x0);},'trailsDepthTexture':function _0x5e2491(){var _0x504051=_0x5a34f8;return _0x525172[_0x504051(0x235)][_0x504051(0x265)]['depthTexture'];},'fadeOpacity':function _0x1e9d6b(){var _0x532717=_0x5a34f8;return _0xf7ac7c[_0x532717(0x23b)];}},'vertexShaderSource':new Cesium$4['ShaderSource']({'defines':['DISABLE_GL_POSITION_LOG_DEPTH'],'sources':[fullscreen_vert]}),'fragmentShaderSource':new Cesium$4['ShaderSource']({'defines':[_0x5a34f8(0x2af)],'sources':[trailDraw_frag]}),'rawRenderState':Util['createRawRenderState']({'viewport':undefined,'depthTest':{'enabled':!![],'func':Cesium$4[_0x5a34f8(0x28f)]['ALWAYS']},'depthMask':!![]}),'framebuffer':this['framebuffers']['nextTrails'],'autoClear':!![],'preExecute':function _0x39ad64(){var _0x5de1dc=_0x5a34f8,_0x509540=_0x525172['framebuffers'][_0x5de1dc(0x265)];_0x525172['framebuffers']['currentTrails']=_0x525172['framebuffers'][_0x5de1dc(0x22c)],_0x525172[_0x5de1dc(0x235)]['nextTrails']=_0x509540,_0x525172['primitives'][_0x5de1dc(0x20b)]['commandToExecute']['framebuffer']=_0x525172[_0x5de1dc(0x235)]['nextTrails'],_0x525172['primitives']['trails']['clearCommand'][_0x5de1dc(0x221)]=_0x525172[_0x5de1dc(0x235)]['nextTrails'];}}),'screen':new CustomPrimitive({'commandType':'Draw','attributeLocations':{'position':0x0,'st':0x1},'geometry':Util['getFullscreenQuad'](),'primitiveType':Cesium$4['PrimitiveType'][_0x5a34f8(0x1fb)],'uniformMap':{'trailsColorTexture':function _0x255081(){return _0x525172['framebuffers']['nextTrails']['getColorTexture'](0x0);},'trailsDepthTexture':function _0x30a23a(){var _0x34e652=_0x5a34f8;return _0x525172['framebuffers'][_0x34e652(0x22c)][_0x34e652(0x220)];}},'vertexShaderSource':new Cesium$4['ShaderSource']({'defines':['DISABLE_GL_POSITION_LOG_DEPTH'],'sources':[fullscreen_vert]}),'fragmentShaderSource':new Cesium$4[(_0x5a34f8(0x253))]({'defines':['DISABLE_LOG_DEPTH_FRAGMENT_WRITE'],'sources':[screenDraw_frag]}),'rawRenderState':Util['createRawRenderState']({'viewport':undefined,'depthTest':{'enabled':![]},'depthMask':!![],'blending':{'enabled':!![]}}),'framebuffer':undefined})};}}]),_0x28198a;}()),getWind_frag=_0x5a552b(0x240),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 _0x50fcfd=_0x5a552b;function _0x33a01(_0x327332,_0x34ca73,_0x5a6993,_0x5503c9){var _0x597561=_0x33f8;_classCallCheck(this,_0x33a01),this[_0x597561(0x276)]=_0x34ca73,this['createWindTextures'](_0x327332,_0x34ca73),this[_0x597561(0x2b0)](_0x327332,_0x5a6993,_0x5503c9),this[_0x597561(0x29f)](_0x34ca73,_0x5a6993,_0x5503c9);}return _createClass(_0x33a01,[{'key':'createWindTextures','value':function _0x1cb44b(_0x5c20a9,_0x555f26){var _0x29faaf=_0x33f8,_0x38413a={'context':_0x5c20a9,'width':_0x555f26[_0x29faaf(0x299)]['lon'],'height':_0x555f26['dimensions'][_0x29faaf(0x29c)]*(_0x555f26['dimensions'][_0x29faaf(0x218)]||0x1),'pixelFormat':Cesium$3['PixelFormat']['LUMINANCE'],'pixelDatatype':Cesium$3['PixelDatatype']['FLOAT'],'flipY':![],'sampler':new Cesium$3['Sampler']({'minificationFilter':Cesium$3['TextureMinificationFilter']['NEAREST'],'magnificationFilter':Cesium$3[_0x29faaf(0x262)]['NEAREST']})};this[_0x29faaf(0x24b)]={'U':Util['createTexture'](_0x38413a,_0x555f26['U'][_0x29faaf(0x215)]),'V':Util['createTexture'](_0x38413a,_0x555f26['V']['array'])};}},{'key':'createParticlesTextures','value':function _0x5d1076(_0x499f6c,_0x388941,_0x19c14a){var _0x1d6f93=_0x33f8,_0x28c6b0={'context':_0x499f6c,'width':_0x388941['particlesTextureSize'],'height':_0x388941['particlesTextureSize'],'pixelFormat':Cesium$3['PixelFormat']['RGBA'],'pixelDatatype':Cesium$3['PixelDatatype'][_0x1d6f93(0x2a2)],'flipY':![],'sampler':new Cesium$3['Sampler']({'minificationFilter':Cesium$3['TextureMinificationFilter'][_0x1d6f93(0x1e5)],'magnificationFilter':Cesium$3['TextureMagnificationFilter']['NEAREST']})},_0x3783eb=this['randomizeParticles'](_0x388941['maxParticles'],_0x19c14a),_0xbd6951=new Float32Array(0x4*_0x388941[_0x1d6f93(0x297)])['fill'](0x0);this[_0x1d6f93(0x2d9)]={'particlesWind':Util['createTexture'](_0x28c6b0),'currentParticlesPosition':Util['createTexture'](_0x28c6b0,_0x3783eb),'nextParticlesPosition':Util['createTexture'](_0x28c6b0,_0x3783eb),'currentParticlesSpeed':Util['createTexture'](_0x28c6b0,_0xbd6951),'nextParticlesSpeed':Util['createTexture'](_0x28c6b0,_0xbd6951),'postProcessingPosition':Util['createTexture'](_0x28c6b0,_0x3783eb),'postProcessingSpeed':Util[_0x1d6f93(0x20a)](_0x28c6b0,_0xbd6951)};}},{'key':_0x50fcfd(0x2d8),'value':function _0x1fa2ed(_0x4777aa,_0x4166e2){var _0x37e108=_0x50fcfd,_0x3f23e9=new Float32Array(0x4*_0x4777aa);for(var _0x12001c=0x0;_0x12001c<_0x4777aa;_0x12001c++){_0x3f23e9[0x4*_0x12001c]=Cesium$3['Math']['randomBetween'](_0x4166e2[_0x37e108(0x1ed)]['x'],_0x4166e2[_0x37e108(0x1ed)]['y']),_0x3f23e9[0x4*_0x12001c+0x1]=Cesium$3['Math']['randomBetween'](_0x4166e2['latRange']['x'],_0x4166e2[_0x37e108(0x1f2)]['y']),_0x3f23e9[0x4*_0x12001c+0x2]=Cesium$3['Math']['randomBetween'](this['data']['lev'][_0x37e108(0x259)],this['data'][_0x37e108(0x218)]['max']),_0x3f23e9[0x4*_0x12001c+0x3]=0x0;}return _0x3f23e9;}},{'key':'destroyParticlesTextures','value':function _0x571ab8(){var _0xcac970=_0x50fcfd,_0xb4a571=this;Object[_0xcac970(0x2ba)](this['particlesTextures'])['forEach'](function(_0x2d78b1){_0xb4a571['particlesTextures'][_0x2d78b1]['destroy']();});}},{'key':'createComputingPrimitives','value':function _0x1cc937(_0x2f3ceb,_0x3c0665,_0x4507f2){var _0x3d5f03=_0x50fcfd,_0xcaf791=new Cesium$3['Cartesian3'](_0x2f3ceb['dimensions']['lon'],_0x2f3ceb['dimensions']['lat'],_0x2f3ceb['dimensions']['lev']),_0x595f71=new Cesium$3['Cartesian3'](_0x2f3ceb['lon'][_0x3d5f03(0x259)],_0x2f3ceb['lat'][_0x3d5f03(0x259)],_0x2f3ceb['lev'][_0x3d5f03(0x259)]),_0x582ee2=new Cesium$3['Cartesian3'](_0x2f3ceb['lon']['max'],_0x2f3ceb['lat']['max'],_0x2f3ceb[_0x3d5f03(0x218)]['max']),_0x5021eb=new Cesium$3['Cartesian3']((_0x582ee2['x']-_0x595f71['x'])/(_0xcaf791['x']-0x1),(_0x582ee2['y']-_0x595f71['y'])/(_0xcaf791['y']-0x1),_0xcaf791['z']>0x1?(_0x582ee2['z']-_0x595f71['z'])/(_0xcaf791['z']-0x1):0x1),_0x41abf6=new Cesium$3['Cartesian2'](_0x2f3ceb['U']['min'],_0x2f3ceb['U'][_0x3d5f03(0x22f)]),_0x5e136d=new Cesium$3['Cartesian2'](_0x2f3ceb['V']['min'],_0x2f3ceb['V'][_0x3d5f03(0x22f)]),_0x542161=this;this['primitives']={'getWind':new CustomPrimitive({'commandType':'Compute','uniformMap':{'U':function _0x136e9f(){return _0x542161['windTextures']['U'];},'V':function _0x4c885a(){return _0x542161['windTextures']['V'];},'currentParticlesPosition':function _0x1d4a58(){return _0x542161['particlesTextures']['currentParticlesPosition'];},'dimension':function _0x37d9bd(){return _0xcaf791;},'minimum':function _0x1d93c4(){return _0x595f71;},'maximum':function _0x530e51(){return _0x582ee2;},'interval':function _0x24bc65(){return _0x5021eb;}},'fragmentShaderSource':new Cesium$3[(_0x3d5f03(0x253))]({'sources':[getWind_frag]}),'outputTexture':this[_0x3d5f03(0x2d9)]['particlesWind'],'preExecute':function _0x310fc2(){_0x542161['primitives']['getWind']['commandToExecute']['outputTexture']=_0x542161['particlesTextures']['particlesWind'];}}),'updateSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesSpeed':function _0x4cac31(){return _0x542161['particlesTextures']['currentParticlesSpeed'];},'particlesWind':function _0x5af242(){return _0x542161['particlesTextures']['particlesWind'];},'uSpeedRange':function _0x1e7f84(){return _0x41abf6;},'vSpeedRange':function _0x1e40e3(){return _0x5e136d;},'pixelSize':function _0x59d0ab(){return _0x4507f2['pixelSize'];},'speedFactor':function _0x48b951(){return _0x3c0665['speedFactor'];}},'fragmentShaderSource':new Cesium$3[(_0x3d5f03(0x253))]({'sources':[updateSpeed_frag]}),'outputTexture':this['particlesTextures']['nextParticlesSpeed'],'preExecute':function _0x3b3497(){var _0x188a4b=_0x3d5f03,_0x34a58f=_0x542161[_0x188a4b(0x2d9)]['currentParticlesSpeed'];_0x542161[_0x188a4b(0x2d9)][_0x188a4b(0x277)]=_0x542161['particlesTextures']['postProcessingSpeed'],_0x542161['particlesTextures'][_0x188a4b(0x1f1)]=_0x34a58f,_0x542161['primitives']['updateSpeed']['commandToExecute']['outputTexture']=_0x542161['particlesTextures'][_0x188a4b(0x2b2)];}}),'updatePosition':new CustomPrimitive({'commandType':_0x3d5f03(0x2a4),'uniformMap':{'currentParticlesPosition':function _0x1ee23c(){return _0x542161['particlesTextures']['currentParticlesPosition'];},'currentParticlesSpeed':function _0x36cd00(){var _0x2abebf=_0x3d5f03;return _0x542161[_0x2abebf(0x2d9)]['currentParticlesSpeed'];}},'fragmentShaderSource':new Cesium$3['ShaderSource']({'sources':[updatePosition_frag]}),'outputTexture':this['particlesTextures']['nextParticlesPosition'],'preExecute':function _0x3df864(){var _0x2e8010=_0x3d5f03,_0x55b754=_0x542161['particlesTextures']['currentParticlesPosition'];_0x542161['particlesTextures'][_0x2e8010(0x282)]=_0x542161[_0x2e8010(0x2d9)]['postProcessingPosition'],_0x542161[_0x2e8010(0x2d9)]['postProcessingPosition']=_0x55b754,_0x542161['primitives']['updatePosition'][_0x2e8010(0x2d1)]['outputTexture']=_0x542161['particlesTextures']['nextParticlesPosition'];}}),'postProcessingPosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'nextParticlesPosition':function _0x114200(){return _0x542161['particlesTextures']['nextParticlesPosition'];},'nextParticlesSpeed':function _0x39f219(){var _0xdb6236=_0x3d5f03;return _0x542161[_0xdb6236(0x2d9)]['nextParticlesSpeed'];},'lonRange':function _0x47eecc(){return _0x4507f2['lonRange'];},'latRange':function _0x2b3000(){return _0x4507f2['latRange'];},'randomCoefficient':function _0x58f0ff(){var _0x463b3e=Math['random']();return _0x463b3e;},'dropRate':function _0x1988e5(){return _0x3c0665['dropRate'];},'dropRateBump':function _0x12f2c7(){return _0x3c0665['dropRateBump'];}},'fragmentShaderSource':new Cesium$3['ShaderSource']({'sources':[postProcessingPosition_frag]}),'outputTexture':this['particlesTextures'][_0x3d5f03(0x25a)],'preExecute':function _0x14c73b(){_0x542161['primitives']['postProcessingPosition']['commandToExecute']['outputTexture']=_0x542161['particlesTextures']['postProcessingPosition'];}}),'postProcessingSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'postProcessingPosition':function _0x1bff1a(){var _0x42cfd2=_0x3d5f03;return _0x542161[_0x42cfd2(0x2d9)][_0x42cfd2(0x25a)];},'nextParticlesSpeed':function _0x4cca7b(){var _0x4c8a43=_0x3d5f03;return _0x542161['particlesTextures'][_0x4c8a43(0x2b2)];}},'fragmentShaderSource':new Cesium$3['ShaderSource']({'sources':[postProcessingSpeed_frag]}),'outputTexture':this['particlesTextures']['postProcessingSpeed'],'preExecute':function _0x320395(){var _0xb544d7=_0x3d5f03;_0x542161[_0xb544d7(0x2d2)]['postProcessingSpeed']['commandToExecute']['outputTexture']=_0x542161['particlesTextures'][_0xb544d7(0x1f1)];}})};}}]),_0x33a01;}()),Cesium$2=mars3d__namespace[_0x5a552b(0x22e)],ParticleSystem=(function(){var _0x428d65=_0x5a552b;function _0x1eba4c(_0x5525a8,_0x122168,_0x2ecdb4,_0x153216){var _0x2ba3cc=_0x33f8;_classCallCheck(this,_0x1eba4c),this[_0x2ba3cc(0x2b9)]=_0x5525a8,_0x122168=_objectSpread2({},_0x122168);if(_0x122168[_0x2ba3cc(0x266)]&&_0x122168['vdata']){var _0x26507b,_0xfc7120,_0x5f0b43,_0x4c86ff,_0x91456f,_0x4828e5;_0x122168['dimensions']={},_0x122168[_0x2ba3cc(0x299)]['lon']=_0x122168['cols'],_0x122168['dimensions']['lat']=_0x122168['rows'],_0x122168['dimensions'][_0x2ba3cc(0x218)]=_0x122168[_0x2ba3cc(0x218)]||0x1,_0x122168['lon']={},_0x122168['lon'][_0x2ba3cc(0x259)]=_0x122168['xmin'],_0x122168['lon'][_0x2ba3cc(0x22f)]=_0x122168['xmax'],_0x122168['lat']={},_0x122168[_0x2ba3cc(0x29c)]['min']=_0x122168['ymin'],_0x122168[_0x2ba3cc(0x29c)]['max']=_0x122168['ymax'],_0x122168['lev']={},_0x122168['lev']['min']=(_0x26507b=_0x122168['levmin'])!==null&&_0x26507b!==void 0x0?_0x26507b:0x1,_0x122168[_0x2ba3cc(0x218)][_0x2ba3cc(0x22f)]=(_0xfc7120=_0x122168[_0x2ba3cc(0x293)])!==null&&_0xfc7120!==void 0x0?_0xfc7120:0x1,_0x122168['U']={},_0x122168['U']['array']=new Float32Array(_0x122168['udata']),_0x122168['U'][_0x2ba3cc(0x259)]=(_0x5f0b43=_0x122168[_0x2ba3cc(0x210)])!==null&&_0x5f0b43!==void 0x0?_0x5f0b43:Math['min'][_0x2ba3cc(0x2d3)](Math,_toConsumableArray(_0x122168[_0x2ba3cc(0x266)])),_0x122168['U']['max']=(_0x4c86ff=_0x122168[_0x2ba3cc(0x1ff)])!==null&&_0x4c86ff!==void 0x0?_0x4c86ff:Math['max'][_0x2ba3cc(0x2d3)](Math,_toConsumableArray(_0x122168['udata'])),_0x122168['V']={},_0x122168['V']['array']=new Float32Array(_0x122168[_0x2ba3cc(0x2dd)]),_0x122168['V'][_0x2ba3cc(0x259)]=(_0x91456f=_0x122168['vmin'])!==null&&_0x91456f!==void 0x0?_0x91456f:Math[_0x2ba3cc(0x259)]['apply'](Math,_toConsumableArray(_0x122168['vdata'])),_0x122168['V']['max']=(_0x4828e5=_0x122168[_0x2ba3cc(0x21a)])!==null&&_0x4828e5!==void 0x0?_0x4828e5:Math['max'][_0x2ba3cc(0x2d3)](Math,_toConsumableArray(_0x122168['vdata']));}this[_0x2ba3cc(0x276)]=_0x122168,this['options']=_0x2ecdb4,this['viewerParameters']=_0x153216,this[_0x2ba3cc(0x1f3)]=new ParticlesComputing(this['context'],this['data'],this['options'],this['viewerParameters']),this['particlesRendering']=new ParticlesRendering(this['context'],this['data'],this['options'],this['viewerParameters'],this[_0x2ba3cc(0x1f3)]);}return _createClass(_0x1eba4c,[{'key':'canvasResize','value':function _0x21b37f(_0x53ca47){var _0x434476=_0x33f8,_0xca8f78=this;this['particlesComputing']['destroyParticlesTextures'](),Object[_0x434476(0x2ba)](this[_0x434476(0x1f3)]['windTextures'])['forEach'](function(_0x5ca1fb){var _0x373699=_0x434476;_0xca8f78['particlesComputing'][_0x373699(0x24b)][_0x5ca1fb][_0x373699(0x2c4)]();}),this['particlesRendering']['textures'][_0x434476(0x2d7)]['destroy'](),Object['keys'](this['particlesRendering'][_0x434476(0x235)])['forEach'](function(_0x2ac294){var _0x51d304=_0x434476;_0xca8f78['particlesRendering']['framebuffers'][_0x2ac294][_0x51d304(0x2c4)]();}),this['context']=_0x53ca47,this['particlesComputing']=new ParticlesComputing(this['context'],this['data'],this['options'],this['viewerParameters']),this['particlesRendering']=new ParticlesRendering(this[_0x434476(0x2b9)],this['data'],this[_0x434476(0x2d6)],this['viewerParameters'],this[_0x434476(0x1f3)]);}},{'key':'clearFramebuffers','value':function _0x46521b(){var _0x2aeb53=_0x33f8,_0x5888be=this,_0x3adb37=new Cesium$2[(_0x2aeb53(0x211))]({'color':new Cesium$2['Color'](0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Cesium$2['Pass']['OPAQUE']});Object['keys'](this[_0x2aeb53(0x26e)]['framebuffers'])['forEach'](function(_0x2d7485){var _0x24d3c8=_0x2aeb53;_0x3adb37['framebuffer']=_0x5888be['particlesRendering']['framebuffers'][_0x2d7485],_0x3adb37['execute'](_0x5888be[_0x24d3c8(0x2b9)]);});}},{'key':'refreshParticles','value':function _0x5b3711(_0x5cc7b8){var _0x44bcb5=_0x33f8;this['clearFramebuffers'](),this['particlesComputing']['destroyParticlesTextures'](),this['particlesComputing']['createParticlesTextures'](this['context'],this[_0x44bcb5(0x2d6)],this['viewerParameters']);if(_0x5cc7b8){var _0x491bee=this['particlesRendering']['createSegmentsGeometry'](this['options']);this[_0x44bcb5(0x26e)]['primitives']['segments']['geometry']=_0x491bee;var _0x43c564=Cesium$2[_0x44bcb5(0x2e1)][_0x44bcb5(0x1e6)]({'context':this['context'],'geometry':_0x491bee,'attributeLocations':this['particlesRendering'][_0x44bcb5(0x2d2)]['segments']['attributeLocations'],'bufferUsage':Cesium$2['BufferUsage']['STATIC_DRAW']});this[_0x44bcb5(0x26e)]['primitives'][_0x44bcb5(0x238)]['commandToExecute'][_0x44bcb5(0x21b)]=_0x43c564;}}},{'key':'setOptions','value':function _0x3ed948(_0x273759){var _0x529fa0=_0x33f8,_0x5dbada=this,_0x1b9fab=![];this[_0x529fa0(0x2d6)]['maxParticles']!==_0x273759['maxParticles']&&(_0x1b9fab=!![]),Object['keys'](_0x273759)['forEach'](function(_0x5b4cd7){_0x5dbada['options'][_0x5b4cd7]=_0x273759[_0x5b4cd7];}),this['refreshParticles'](_0x1b9fab);}},{'key':'applyViewerParameters','value':function _0x323898(_0x13f38e){var _0x581e0d=_0x33f8,_0x20f670=this;Object['keys'](_0x13f38e)[_0x581e0d(0x257)](function(_0x511526){_0x20f670['viewerParameters'][_0x511526]=_0x13f38e[_0x511526];}),this['refreshParticles'](![]);}},{'key':_0x428d65(0x2c4),'value':function _0x3d2877(){var _0xb1f19a=_0x428d65,_0x139e88=this;clearTimeout(this['canrefresh']),this[_0xb1f19a(0x1f3)]['destroyParticlesTextures'](),Object['keys'](this['particlesComputing']['windTextures'])['forEach'](function(_0x2a7220){var _0x5c5e0e=_0xb1f19a;_0x139e88['particlesComputing'][_0x5c5e0e(0x24b)][_0x2a7220]['destroy']();}),this[_0xb1f19a(0x26e)][_0xb1f19a(0x2b8)]['colorTable']['destroy'](),Object['keys'](this[_0xb1f19a(0x26e)][_0xb1f19a(0x235)])['forEach'](function(_0x738d8a){_0x139e88['particlesRendering']['framebuffers'][_0x738d8a]['destroy']();});for(var _0x148043 in this){delete this[_0x148043];}}}]),_0x1eba4c;}()),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(_0x1cf45c){var _0x517bbe=_0x5a552b;_inherits(_0x1536ad,_0x1cf45c);var _0xfce37f=_createSuper(_0x1536ad);function _0x1536ad(){var _0x874410=_0x33f8,_0x269adb,_0x56283c=arguments[_0x874410(0x23f)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};return _classCallCheck(this,_0x1536ad),_0x56283c=_objectSpread2(_objectSpread2({},DEF_OPTIONS),_0x56283c),_0x269adb=_0xfce37f['call'](this,_0x56283c),_0x269adb['_setOptionsHook'](_0x56283c),_0x269adb;}return _createClass(_0x1536ad,[{'key':'layer','get':function _0x3d3c11(){return this['primitives'];}},{'key':'data','get':function _0x2c7317(){return this['_data'];},'set':function _0x25be35(_0x4e6b76){this['setData'](_0x4e6b76);}},{'key':'colors','get':function _0x2a6c8d(){return this['options']['colors'];},'set':function _0x19a26b(_0x122d0c){var _0x261f2e=_0x33f8;this['options']['colors']=_0x122d0c,this['particleSystem']&&this[_0x261f2e(0x248)][_0x261f2e(0x20e)]({'colors':_0x122d0c}),this['resize']();}},{'key':'_mountedHook','value':function _0x13f467(){}},{'key':_0x517bbe(0x219),'value':function _0x54216c(){var _0x545048=_0x517bbe;this['scene']=this[_0x545048(0x2ca)]['scene'],this['camera']=this['_map']['camera'],this[_0x545048(0x2d2)]=new Cesium$1['PrimitiveCollection'](),this['_map']['scene'][_0x545048(0x2d2)]['add'](this[_0x545048(0x2d2)]),this['viewerParameters']={'lonRange':new Cesium$1['Cartesian2'](),'latRange':new Cesium$1['Cartesian2'](),'pixelSize':0x0},this['globeBoundingSphere']=new Cesium$1['BoundingSphere'](Cesium$1[_0x545048(0x20c)]['ZERO'],0.99*0x615299),this['updateViewerParameters'](),window[_0x545048(0x1f7)]('resize',this['resize']['bind'](this),![]),this['mouse_down']=![],this[_0x545048(0x21f)]=![],this[_0x545048(0x2ca)]['on'](mars3d__namespace['EventType'][_0x545048(0x289)],this['_onMapWhellEvent'],this),this[_0x545048(0x2ca)]['on'](mars3d__namespace['EventType']['mouseDown'],this['_onMouseDownEvent'],this),this['_map']['on'](mars3d__namespace['EventType']['mouseUp'],this[_0x545048(0x227)],this),this['_map']['on'](mars3d__namespace[_0x545048(0x2db)]['mouseMove'],this[_0x545048(0x263)],this),this[_0x545048(0x269)]&&this['setData'](this['_data']);}},{'key':'_removedHook','value':function _0x425502(){var _0x59b7c7=_0x517bbe;window[_0x59b7c7(0x2ae)]('resize',this['resize']),this[_0x59b7c7(0x2ca)]['off'](mars3d__namespace[_0x59b7c7(0x2db)][_0x59b7c7(0x25d)],this['_onMap_preRenderEvent'],this),this['_map']['off'](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this),this[_0x59b7c7(0x2ca)]['off'](mars3d__namespace['EventType']['mouseDown'],this['_onMouseDownEvent'],this),this['_map'][_0x59b7c7(0x28a)](mars3d__namespace['EventType']['mouseUp'],this[_0x59b7c7(0x227)],this),this[_0x59b7c7(0x2ca)]['off'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this),this['primitives'][_0x59b7c7(0x2a1)](),this['_map'][_0x59b7c7(0x230)]['primitives']['remove'](this['primitives']);}},{'key':'resize','value':function _0x35042e(){var _0x405f73=_0x517bbe;if(!this['show']||!this[_0x405f73(0x248)])return;this['primitives']['show']=![],this['primitives']['removeAll'](),this['_map'][_0x405f73(0x2cb)](mars3d__namespace[_0x405f73(0x2db)][_0x405f73(0x25d)],this['_onMap_preRenderEvent'],this);}},{'key':'_onMap_preRenderEvent','value':function _0x298492(_0x28c6c8){var _0x554baa=_0x517bbe;this['particleSystem'][_0x554baa(0x2d4)](this['scene']['context']),this['addPrimitives'](),this[_0x554baa(0x2d2)]['show']=!![];}},{'key':'_onMapWhellEvent','value':function _0x1b2057(_0x4d58f0){var _0x506557=this;clearTimeout(this['refreshTimer']);if(!this['show']||!this['particleSystem'])return;this['primitives']['show']=![],this['refreshTimer']=setTimeout(function(){if(!_0x506557['show'])return;_0x506557['redraw']();},0xc8);}},{'key':'_onMouseDownEvent','value':function _0x4da4ca(_0x463414){this['mouse_down']=!![];}},{'key':_0x517bbe(0x263),'value':function _0x2cf2fe(_0x2b5dc1){var _0x463985=_0x517bbe;if(!this['show']||!this['particleSystem'])return;this[_0x463985(0x251)]&&(this['primitives']['show']=![],this['mouse_move']=!![]);}},{'key':'_onMouseUpEvent','value':function _0xb65326(_0x1acc91){var _0xe4805a=_0x517bbe;if(!this['show']||!this['particleSystem'])return;this[_0xe4805a(0x251)]&&this['mouse_move']&&this['redraw'](),this['primitives']['show']=!![],this['mouse_down']=![],this['mouse_move']=![];}},{'key':'redraw','value':function _0x8e842f(){var _0x3c0dea=_0x517bbe;if(!this['_map']||!this['show'])return;this[_0x3c0dea(0x214)](),this['particleSystem']['applyViewerParameters'](this[_0x3c0dea(0x22d)]),this['primitives']['show']=!![];}},{'key':'setData','value':function _0x51cd95(_0x3a1dea){var _0x33fae0=_0x517bbe;this['_data']=_0x3a1dea,this['particleSystem']&&this['particleSystem']['destroy'](),this['particleSystem']=new ParticleSystem(this['scene']['context'],_0x3a1dea,this[_0x33fae0(0x21d)](),this['viewerParameters']),this['addPrimitives']();}},{'key':_0x517bbe(0x2c1),'value':function _0x347fe6(_0x28058b,_0x2cfdb5){var _0x1361ad=_0x517bbe;if(_0x28058b)for(var _0x4c1fbe in _0x28058b){this[_0x4c1fbe]=_0x28058b[_0x4c1fbe];}this['particleSystem']&&this[_0x1361ad(0x248)][_0x1361ad(0x20e)](this['getOptions']());}},{'key':'getOptions','value':function _0x10d776(){var _0x2621bf=_0x517bbe,_0x456de0=Math['ceil'](Math['sqrt'](this['particlesNumber']));return this[_0x2621bf(0x24c)]=_0x456de0*_0x456de0,{'particlesTextureSize':_0x456de0,'maxParticles':this['particlesNumber'],'particleHeight':this['fixedHeight'],'fadeOpacity':this['fadeOpacity'],'dropRate':this['dropRate'],'dropRateBump':this['dropRateBump'],'speedFactor':this[_0x2621bf(0x252)],'lineWidth':this['lineWidth'],'colors':this['colors']};}},{'key':'addPrimitives','value':function _0x2a90de(){var _0x1c2e06=_0x517bbe;this[_0x1c2e06(0x2d2)]['add'](this['particleSystem']['particlesComputing']['primitives']['getWind']),this['primitives'][_0x1c2e06(0x2b1)](this['particleSystem'][_0x1c2e06(0x1f3)]['primitives']['updateSpeed']),this['primitives'][_0x1c2e06(0x2b1)](this['particleSystem']['particlesComputing']['primitives']['updatePosition']),this['primitives']['add'](this['particleSystem']['particlesComputing']['primitives'][_0x1c2e06(0x25a)]),this['primitives']['add'](this[_0x1c2e06(0x248)][_0x1c2e06(0x1f3)]['primitives'][_0x1c2e06(0x1f1)]),this['primitives']['add'](this['particleSystem']['particlesRendering']['primitives']['segments']),this['primitives']['add'](this['particleSystem'][_0x1c2e06(0x26e)][_0x1c2e06(0x2d2)]['trails']),this['primitives']['add'](this['particleSystem']['particlesRendering']['primitives']['screen']);}},{'key':_0x517bbe(0x214),'value':function _0x205e3b(){var _0xac74d5=_0x517bbe,_0x505a07=this['camera']['computeViewRectangle'](this['scene']['globe']['ellipsoid']);if(!_0x505a07){var _0x245f67=this[_0xac74d5(0x2ca)]['getExtent']();_0x505a07=Cesium$1['Rectangle']['fromDegrees'](_0x245f67['xmin'],_0x245f67['ymin'],_0x245f67['xmax'],_0x245f67['ymax']);}var _0x18163c=Util[_0xac74d5(0x28c)](_0x505a07);this['viewerParameters'][_0xac74d5(0x1ed)]['x']=_0x18163c['lon']['min'],this['viewerParameters']['lonRange']['y']=_0x18163c['lon']['max'],this[_0xac74d5(0x22d)][_0xac74d5(0x1f2)]['x']=_0x18163c[_0xac74d5(0x29c)]['min'],this['viewerParameters']['latRange']['y']=_0x18163c['lat']['max'];var _0x5a8bbf=this['camera']['getPixelSize'](this['globeBoundingSphere'],this[_0xac74d5(0x230)]['drawingBufferWidth'],this['scene']['drawingBufferHeight']);_0x5a8bbf>0x0&&(this['viewerParameters'][_0xac74d5(0x24a)]=_0x5a8bbf);}}]),_0x1536ad;}(BaseLayer$1);mars3d__namespace['LayerUtil']['register']('wind',WindLayer),mars3d__namespace['layer']['WindLayer']=WindLayer;var CanvasParticle=(function(){function _0x2c57a6(){var _0xf1ec68=_0x33f8;_classCallCheck(this,_0x2c57a6),this[_0xf1ec68(0x1ec)]=null,this[_0xf1ec68(0x29c)]=null,this['tlng']=null,this['tlat']=null,this[_0xf1ec68(0x2be)]=null;}return _createClass(_0x2c57a6,[{'key':'destroy','value':function _0x56be92(){for(var _0x3914c6 in this){delete this[_0x3914c6];}}}]),_0x2c57a6;}()),CanvasWindField=(function(){var _0x50ec43=_0x5a552b;function _0x103bdb(_0x13fea3){_classCallCheck(this,_0x103bdb),this['setOptions'](_0x13fea3);}return _createClass(_0x103bdb,[{'key':'speedRate','get':function _0x4b4838(){return this['_speedRate'];},'set':function _0x1f7db1(_0x27731e){var _0x2bac45=_0x33f8;this['_speedRate']=(0x64-(_0x27731e>0x63?0x63:_0x27731e))*0x64,this['_calc_speedRate']=[(this['xmax']-this[_0x2bac45(0x267)])/this['_speedRate'],(this['ymax']-this['ymin'])/this['_speedRate']];}},{'key':'maxAge','get':function _0x497319(){var _0x2a6495=_0x33f8;return this[_0x2a6495(0x243)];},'set':function _0x1ccc57(_0x3f6093){this['_maxAge']=_0x3f6093;}},{'key':_0x50ec43(0x20e),'value':function _0x295392(_0x453403){var _0x2cbf89=_0x50ec43;this['options']=_0x453403,this['maxAge']=_0x453403['maxAge']||0x78,this['speedRate']=_0x453403[_0x2cbf89(0x231)]||0x32,this['particles']=[];var _0x2ea652=_0x453403['particlesNumber']||0x1000;for(var _0x415043=0x0;_0x415043<_0x2ea652;_0x415043++){var _0xec2f21=this['_randomParticle'](new CanvasParticle());this['particles']['push'](_0xec2f21);}}},{'key':'setDate','value':function _0x2029ea(_0x2f5e33){var _0x17bf99=_0x50ec43;this[_0x17bf99(0x296)]=_0x2f5e33[_0x17bf99(0x296)],this['cols']=_0x2f5e33['cols'],this['xmin']=_0x2f5e33[_0x17bf99(0x267)],this['xmax']=_0x2f5e33[_0x17bf99(0x213)],this[_0x17bf99(0x23c)]=_0x2f5e33['ymin'],this['ymax']=_0x2f5e33['ymax'],this[_0x17bf99(0x1fe)]=[];var _0x6f5db9=_0x2f5e33['udata'],_0x266013=_0x2f5e33['vdata'],_0xbc6f51=![];_0x6f5db9['length']===this[_0x17bf99(0x296)]&&_0x6f5db9[0x0]['length']===this[_0x17bf99(0x245)]&&(_0xbc6f51=!![]);var _0x362f4c=0x0,_0x5a3c69=null,_0x5defac=null;for(var _0x55e698=0x0;_0x55e698<this['rows'];_0x55e698++){_0x5a3c69=[];for(var _0x20f0b0=0x0;_0x20f0b0<this[_0x17bf99(0x245)];_0x20f0b0++,_0x362f4c++){_0xbc6f51?_0x5defac=this['_calcUV'](_0x6f5db9[_0x55e698][_0x20f0b0],_0x266013[_0x55e698][_0x20f0b0]):_0x5defac=this['_calcUV'](_0x6f5db9[_0x362f4c],_0x266013[_0x362f4c]),_0x5a3c69['push'](_0x5defac);}this[_0x17bf99(0x1fe)]['push'](_0x5a3c69);}this['options']['reverseY']&&this[_0x17bf99(0x1fe)][_0x17bf99(0x225)]();}},{'key':'clear','value':function _0x47b0f1(){var _0x9c688c=_0x50ec43;delete this['rows'],delete this[_0x9c688c(0x245)],delete this['xmin'],delete this[_0x9c688c(0x213)],delete this['ymin'],delete this['ymax'],delete this[_0x9c688c(0x1fe)],delete this['particles'];}},{'key':'toGridXY','value':function _0x20cab2(_0x7a8d4,_0x2f736a){var _0x30f893=_0x50ec43,_0x2975c0=(_0x7a8d4-this[_0x30f893(0x267)])/(this['xmax']-this['xmin'])*(this['cols']-0x1),_0x34a041=(this['ymax']-_0x2f736a)/(this['ymax']-this[_0x30f893(0x23c)])*(this['rows']-0x1);return[_0x2975c0,_0x34a041];}},{'key':'getUVByXY','value':function _0x316f28(_0x4aae5c,_0x194779){var _0x535c38=_0x50ec43;if(_0x4aae5c<0x0||_0x4aae5c>=this[_0x535c38(0x245)]||_0x194779>=this['rows'])return[0x0,0x0,0x0];var _0x4cdee9=Math['floor'](_0x4aae5c),_0xe9722a=Math[_0x535c38(0x279)](_0x194779);if(_0x4cdee9===_0x4aae5c&&_0xe9722a===_0x194779)return this[_0x535c38(0x1fe)][_0x194779][_0x4aae5c];var _0x1fee8c=_0x4cdee9+0x1,_0x48e9a6=_0xe9722a+0x1,_0x5ee037=this['getUVByXY'](_0x4cdee9,_0xe9722a),_0x42fd7c=this[_0x535c38(0x25c)](_0x1fee8c,_0xe9722a),_0x5e4caf=this[_0x535c38(0x25c)](_0x4cdee9,_0x48e9a6),_0x3fd50c=this['getUVByXY'](_0x1fee8c,_0x48e9a6),_0x559730=null;try{_0x559730=this['_bilinearInterpolation'](_0x4aae5c-_0x4cdee9,_0x194779-_0xe9722a,_0x5ee037,_0x42fd7c,_0x5e4caf,_0x3fd50c);}catch(_0x22b010){console['log'](_0x4aae5c,_0x194779);}return _0x559730;}},{'key':'_bilinearInterpolation','value':function _0x1f1787(_0x1c1e5e,_0x1670ac,_0x1701d5,_0x15b7ee,_0x458237,_0x2ba407){var _0x38c0d4=0x1-_0x1c1e5e,_0x30bf7f=0x1-_0x1670ac,_0x3837a5=_0x38c0d4*_0x30bf7f,_0x315dfa=_0x1c1e5e*_0x30bf7f,_0x36125c=_0x38c0d4*_0x1670ac,_0x54fefc=_0x1c1e5e*_0x1670ac,_0xb8685b=_0x1701d5[0x0]*_0x3837a5+_0x15b7ee[0x0]*_0x315dfa+_0x458237[0x0]*_0x36125c+_0x2ba407[0x0]*_0x54fefc,_0x4bb60d=_0x1701d5[0x1]*_0x3837a5+_0x15b7ee[0x1]*_0x315dfa+_0x458237[0x1]*_0x36125c+_0x2ba407[0x1]*_0x54fefc;return this['_calcUV'](_0xb8685b,_0x4bb60d);}},{'key':_0x50ec43(0x278),'value':function _0x2dccee(_0x25b8f1,_0x4ce911){var _0x314d49=_0x50ec43;return[+_0x25b8f1,+_0x4ce911,Math[_0x314d49(0x226)](_0x25b8f1*_0x25b8f1+_0x4ce911*_0x4ce911)];}},{'key':_0x50ec43(0x23e),'value':function _0x4b22c4(_0x154436,_0x5f0802){var _0x2ace9f=_0x50ec43;if(!this['isInExtent'](_0x154436,_0x5f0802))return null;var _0x584811=this['toGridXY'](_0x154436,_0x5f0802),_0xb7e68c=this[_0x2ace9f(0x25c)](_0x584811[0x0],_0x584811[0x1]);return _0xb7e68c;}},{'key':'isInExtent','value':function _0x39cb4c(_0x5c8554,_0x1314d0){var _0x49b426=_0x50ec43;return _0x5c8554>=this[_0x49b426(0x267)]&&_0x5c8554<=this[_0x49b426(0x213)]&&_0x1314d0>=this[_0x49b426(0x23c)]&&_0x1314d0<=this['ymax']?!![]:![];}},{'key':_0x50ec43(0x1e9),'value':function _0x121b15(){var _0x12e284=_0x50ec43,_0x3c0a97=fRandomByfloat(this[_0x12e284(0x267)],this['xmax']),_0x292abc=fRandomByfloat(this[_0x12e284(0x23c)],this['ymax']);return{'lat':_0x292abc,'lng':_0x3c0a97};}},{'key':'getParticles','value':function _0x32ce4e(){var _0x245d50=_0x50ec43,_0x21c096,_0x3b509c,_0x1254e2;for(var _0x2f26e4=0x0,_0x3c12ad=this['particles'][_0x245d50(0x23f)];_0x2f26e4<_0x3c12ad;_0x2f26e4++){var _0x5339c7=this['particles'][_0x2f26e4];_0x5339c7['age']<=0x0&&(_0x5339c7=this[_0x245d50(0x2b3)](_0x5339c7));if(_0x5339c7[_0x245d50(0x2be)]>0x0){var _0x2bc838=_0x5339c7['tlng'],_0x5aec57=_0x5339c7['tlat'];_0x1254e2=this['getUVByPoint'](_0x2bc838,_0x5aec57),_0x1254e2?(_0x21c096=_0x2bc838+this[_0x245d50(0x222)][0x0]*_0x1254e2[0x0],_0x3b509c=_0x5aec57+this['_calc_speedRate'][0x1]*_0x1254e2[0x1],_0x5339c7['lng']=_0x2bc838,_0x5339c7['lat']=_0x5aec57,_0x5339c7[_0x245d50(0x29b)]=_0x21c096,_0x5339c7[_0x245d50(0x260)]=_0x3b509c,_0x5339c7[_0x245d50(0x2be)]--):_0x5339c7['age']=0x0;}}return this['particles'];}},{'key':'_randomParticle','value':function _0xd584ab(_0x21f5fe){var _0x192898=_0x50ec43,_0x6f4aea,_0xa91428;for(var _0x4ed797=0x0;_0x4ed797<0x1e;_0x4ed797++){_0x6f4aea=this['getRandomLatLng'](),_0xa91428=this[_0x192898(0x23e)](_0x6f4aea['lng'],_0x6f4aea['lat']);if(_0xa91428&&_0xa91428[0x2]>0x0)break;}if(!_0xa91428)return _0x21f5fe;var _0xc51bb1=_0x6f4aea[_0x192898(0x1ec)]+this['_calc_speedRate'][0x0]*_0xa91428[0x0],_0x2f385b=_0x6f4aea[_0x192898(0x29c)]+this[_0x192898(0x222)][0x1]*_0xa91428[0x1];return _0x21f5fe[_0x192898(0x1ec)]=_0x6f4aea['lng'],_0x21f5fe['lat']=_0x6f4aea[_0x192898(0x29c)],_0x21f5fe['tlng']=_0xc51bb1,_0x21f5fe['tlat']=_0x2f385b,_0x21f5fe[_0x192898(0x2be)]=Math['round'](Math[_0x192898(0x239)]()*this['maxAge']),_0x21f5fe;}},{'key':_0x50ec43(0x2c4),'value':function _0x2403c5(){for(var _0x1930ef in this){delete this[_0x1930ef];}}}]),_0x103bdb;}());function fRandomByfloat(_0x24a336,_0x361eb5){return _0x24a336+Math['random']()*(_0x361eb5-_0x24a336);}var Cesium=mars3d__namespace['Cesium'],BaseLayer=mars3d__namespace['layer']['BaseLayer'],CanvasWindLayer=function(_0x56919f){var _0x5a24bc=_0x5a552b;_inherits(_0x6f0da8,_0x56919f);var _0x50ad82=_createSuper(_0x6f0da8);function _0x6f0da8(){var _0xdbce=_0x33f8,_0x6de4d5,_0x2e8f1d=arguments[_0xdbce(0x23f)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};return _classCallCheck(this,_0x6f0da8),_0x6de4d5=_0x50ad82[_0xdbce(0x255)](this,_0x2e8f1d),_0x6de4d5[_0xdbce(0x2c1)](_0x2e8f1d),_0x6de4d5[_0xdbce(0x2a9)]=null,_0x6de4d5;}return _createClass(_0x6f0da8,[{'key':_0x5a24bc(0x2c1),'value':function _0x21448f(_0x2cfd1a,_0x3dea36){var _0x5684fc=_0x5a24bc,_0x201c07,_0xf19b4f,_0x3c39b9;this['frameTime']=0x3e8/(_0x2cfd1a['frameRate']||0xa),this[_0x5684fc(0x26b)]=(_0x201c07=this['options']['pointerEvents'])!==null&&_0x201c07!==void 0x0?_0x201c07:![],this['color']=_0x2cfd1a[_0x5684fc(0x288)]||_0x5684fc(0x25f),this['lineWidth']=_0x2cfd1a['lineWidth']||0x1,this['fixedHeight']=(_0xf19b4f=_0x2cfd1a['fixedHeight'])!==null&&_0xf19b4f!==void 0x0?_0xf19b4f:0x0,this['reverseY']=(_0x3c39b9=_0x2cfd1a['reverseY'])!==null&&_0x3c39b9!==void 0x0?_0x3c39b9:![],this[_0x5684fc(0x1e8)]&&this['windField']['setOptions'](_0x2cfd1a);}},{'key':'layer','get':function _0x30f56e(){return this['canvas'];}},{'key':_0x5a24bc(0x261),'get':function _0x5b11fa(){return this['_map']['scene']['canvas']['clientWidth'];}},{'key':_0x5a24bc(0x2bc),'get':function _0x244c10(){var _0x26245f=_0x5a24bc;return this['_map'][_0x26245f(0x230)]['canvas']['clientHeight'];}},{'key':_0x5a24bc(0x229),'get':function _0x53e8b3(){var _0x57c793=_0x5a24bc;return this[_0x57c793(0x26b)];},'set':function _0x180604(_0x59513b){var _0x402dc8=_0x5a24bc;this['_pointerEvents']=_0x59513b;if(!this['canvas'])return;_0x59513b?this[_0x402dc8(0x2a9)][_0x402dc8(0x1f5)]['pointer-events']=_0x402dc8(0x200):this['canvas']['style']['pointer-events']=_0x402dc8(0x298);}},{'key':'particlesNumber','get':function _0x177a40(){return this['options']['particlesNumber'];},'set':function _0x1a4c2a(_0x3bbfdb){var _0x19fb54=_0x5a24bc,_0x427726=this;this['options']['particlesNumber']=_0x3bbfdb,clearTimeout(this[_0x19fb54(0x281)]),this['_canrefresh']=setTimeout(function(){_0x427726['redraw']();},0x1f4);}},{'key':'speedRate','get':function _0x4b2a39(){return this['options']['speedRate'];},'set':function _0x2b6bab(_0x496422){var _0x374ccd=_0x5a24bc;this['options']['speedRate']=_0x496422,this['windField']&&(this[_0x374ccd(0x1e8)]['speedRate']=_0x496422);}},{'key':'maxAge','get':function _0x4f6fb7(){var _0x1bcaa8=_0x5a24bc;return this['options'][_0x1bcaa8(0x2a8)];},'set':function _0x503439(_0x3a092b){var _0x2dc588=_0x5a24bc;this['options']['maxAge']=_0x3a092b,this['windField']&&(this[_0x2dc588(0x1e8)]['maxAge']=_0x3a092b);}},{'key':_0x5a24bc(0x276),'get':function _0x227ea1(){return this['windData'];},'set':function _0x351a3b(_0xc7eabc){this['setData'](_0xc7eabc);}},{'key':_0x5a24bc(0x208),'value':function _0x1a8207(_0x4fb3bd){var _0x22e62f=_0x5a24bc;_0x4fb3bd?this[_0x22e62f(0x219)]():(this['windData']&&(this['options']['data']=this['windData']),this['_removedHook']());}},{'key':'_mountedHook','value':function _0x22d43b(){this['options']['worker']?this['initWorker']():this['windField']=new CanvasWindField(this['options']);}},{'key':'_addedHook','value':function _0x941f69(){var _0x233e0a=_0x5a24bc;this['canvas']=this[_0x233e0a(0x202)](),this[_0x233e0a(0x2bd)]=this['canvas']['getContext']('2d',{'willReadFrequently':!![]}),this[_0x233e0a(0x264)](),this['options']['data']&&this['setData'](this['options']['data']);}},{'key':'_removedHook','value':function _0x7fb1e7(){var _0x2a4cd7=_0x5a24bc;this['clear'](),this['unbindEvent'](),this['canvas']&&(this['_map']['container'][_0x2a4cd7(0x256)](this['canvas']),delete this['canvas']);}},{'key':_0x5a24bc(0x202),'value':function _0x234910(){var _0x32ab52=_0x5a24bc,_0x4e9b8e=document['createElement'](_0x32ab52(0x2a9));_0x4e9b8e['style']['position']='absolute',_0x4e9b8e[_0x32ab52(0x1f5)]['top']=_0x32ab52(0x29e),_0x4e9b8e['style'][_0x32ab52(0x1ea)]='0px',_0x4e9b8e[_0x32ab52(0x1f5)][_0x32ab52(0x2cf)]=_0x32ab52(0x20d),_0x4e9b8e['style']['height']='100%',_0x4e9b8e['style']['pointerEvents']=this['_pointerEvents']?_0x32ab52(0x28e):_0x32ab52(0x298),_0x4e9b8e['style']['zIndex']=0xa,_0x4e9b8e['setAttribute']('id',_0x32ab52(0x234)),_0x4e9b8e['setAttribute']('class',_0x32ab52(0x234)),this['_map'][_0x32ab52(0x294)]['appendChild'](_0x4e9b8e);var _0x268130=this['_map']['scene'];return _0x4e9b8e[_0x32ab52(0x2cf)]=_0x268130['canvas']['clientWidth'],_0x4e9b8e['height']=_0x268130[_0x32ab52(0x2a9)]['clientHeight'],_0x4e9b8e;}},{'key':'resize','value':function _0x21b663(){var _0x1f4d62=_0x5a24bc;this[_0x1f4d62(0x2a9)]&&(this[_0x1f4d62(0x2a9)][_0x1f4d62(0x2cf)]=this[_0x1f4d62(0x261)],this[_0x1f4d62(0x2a9)]['height']=this[_0x1f4d62(0x2bc)]);}},{'key':_0x5a24bc(0x264),'value':function _0xc986d5(){var _0x7c1423=_0x5a24bc,_0xa0190a=this,_0x56ac63=Date['now']();(function _0x47acbb(){var _0xe9f253=_0x33f8;_0xa0190a[_0xe9f253(0x292)]=window['requestAnimationFrame'](_0x47acbb);if(_0xa0190a[_0xe9f253(0x2ce)]&&_0xa0190a['windField']){var _0xd26d74=Date[_0xe9f253(0x2ac)](),_0x14823e=_0xd26d74-_0x56ac63;_0x14823e>_0xa0190a['frameTime']&&(_0x56ac63=_0xd26d74-_0x14823e%_0xa0190a['frameTime'],_0xa0190a['update']());}}(),window['addEventListener']('resize',this['resize']['bind'](this),![]),this['mouse_down']=![],this['mouse_move']=![],this[_0x7c1423(0x2d6)]['mouseHidden']&&(this['_map']['on'](mars3d__namespace['EventType']['wheel'],this[_0x7c1423(0x216)],this),this['_map']['on'](mars3d__namespace['EventType']['mouseDown'],this['_onMouseDownEvent'],this),this['_map']['on'](mars3d__namespace[_0x7c1423(0x2db)]['mouseUp'],this['_onMouseUpEvent'],this)));}},{'key':'unbindEvent','value':function _0x585fd1(){var _0x24c000=_0x5a24bc;window['cancelAnimationFrame'](this['animateFrame']),delete this['animateFrame'],window[_0x24c000(0x2ae)](_0x24c000(0x1f4),this[_0x24c000(0x1f4)]),this['options']['mouseHidden']&&(this['_map']['off'](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this),this['_map']['off'](mars3d__namespace['EventType']['mouseDown'],this['_onMouseDownEvent'],this),this['_map']['off'](mars3d__namespace[_0x24c000(0x2db)][_0x24c000(0x27d)],this['_onMouseUpEvent'],this),this['_map'][_0x24c000(0x28a)](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this));}},{'key':'_onMapWhellEvent','value':function _0x752174(_0x224133){var _0x8f73a5=_0x5a24bc,_0x2c50f8=this;clearTimeout(this[_0x8f73a5(0x1fc)]);if(!this['show']||!this[_0x8f73a5(0x2a9)])return;this[_0x8f73a5(0x2a9)]['style']['visibility']='hidden',this['refreshTimer']=setTimeout(function(){var _0x1efead=_0x8f73a5;if(!_0x2c50f8[_0x1efead(0x2ce)])return;_0x2c50f8['redraw'](),_0x2c50f8['canvas']['style']['visibility']='visible';},0xc8);}},{'key':'_onMouseDownEvent','value':function _0x125956(_0x52910a){var _0x50c080=_0x5a24bc;this['mouse_down']=!![],this[_0x50c080(0x2ca)]['off'](mars3d__namespace['EventType'][_0x50c080(0x2ab)],this[_0x50c080(0x263)],this),this[_0x50c080(0x2ca)]['on'](mars3d__namespace['EventType'][_0x50c080(0x2ab)],this['_onMouseMoveEvent'],this);}},{'key':'_onMouseMoveEvent','value':function _0x58bd23(_0x542d39){var _0x2dd3ee=_0x5a24bc;if(!this['show']||!this['canvas'])return;this[_0x2dd3ee(0x251)]&&(this['canvas']['style'][_0x2dd3ee(0x2dc)]='hidden',this['mouse_move']=!![]);}},{'key':'_onMouseUpEvent','value':function _0x176372(_0x12c04a){var _0x1fd6a7=_0x5a24bc;if(!this[_0x1fd6a7(0x2ce)]||!this[_0x1fd6a7(0x2a9)])return;this['_map']['off'](mars3d__namespace['EventType'][_0x1fd6a7(0x2ab)],this['_onMouseMoveEvent'],this),this['mouse_down']&&this['mouse_move']&&this['redraw'](),this[_0x1fd6a7(0x2a9)]['style'][_0x1fd6a7(0x2dc)]='visible',this[_0x1fd6a7(0x251)]=![],this[_0x1fd6a7(0x21f)]=![];}},{'key':_0x5a24bc(0x284),'value':function _0x2796eb(_0x2b2920){var _0x3d340b=_0x5a24bc;this['clear'](),this['windData']=_0x2b2920,this['windField']['setDate'](_0x2b2920),this[_0x3d340b(0x1f9)]();}},{'key':'redraw','value':function _0x29467d(){var _0x5e03f7=_0x5a24bc;if(!this[_0x5e03f7(0x2ce)])return;this['windField']['setOptions'](this[_0x5e03f7(0x2d6)]),this['update']();}},{'key':_0x5a24bc(0x2b6),'value':function _0x2c7080(){var _0x5f0f0a=_0x5a24bc;if(this['_updateIng'])return;this['_updateIng']=!![];if(this['worker'])this['windField']['update']();else{var _0x299539=this[_0x5f0f0a(0x1e8)][_0x5f0f0a(0x2c0)]();this['_drawLines'](_0x299539);}this['_updateIng']=![];}},{'key':_0x5a24bc(0x2b4),'value':function _0x520bb9(_0x25f27a){var _0x4b664e=_0x5a24bc;this[_0x4b664e(0x2bd)]['globalCompositeOperation']='destination-in',this['canvasContext']['fillRect'](0x0,0x0,this[_0x4b664e(0x261)],this['canvasHeight']),this[_0x4b664e(0x2bd)][_0x4b664e(0x2c9)]=_0x4b664e(0x1e7),this['canvasContext'][_0x4b664e(0x2a6)]=0.9,this[_0x4b664e(0x2bd)][_0x4b664e(0x228)](),this['canvasContext']['lineWidth']=this['lineWidth'],this['canvasContext']['strokeStyle']=this['color'];var _0x1ed9a8=this[_0x4b664e(0x2ca)][_0x4b664e(0x230)]['mode']!==Cesium['SceneMode'][_0x4b664e(0x24f)];for(var _0x318fa4=0x0,_0x132617=_0x25f27a[_0x4b664e(0x23f)];_0x318fa4<_0x132617;_0x318fa4++){var _0x4b6731=_0x25f27a[_0x318fa4],_0x57bb96=this['_tomap'](_0x4b6731['lng'],_0x4b6731['lat'],_0x4b6731),_0xbc55e0=this['_tomap'](_0x4b6731['tlng'],_0x4b6731['tlat'],_0x4b6731);if(!_0x57bb96||!_0xbc55e0)continue;if(_0x1ed9a8&&Math['abs'](_0x57bb96[0x0]-_0xbc55e0[0x0])>=this['canvasWidth'])continue;this['canvasContext'][_0x4b664e(0x2c2)](_0x57bb96[0x0],_0x57bb96[0x1]),this['canvasContext']['lineTo'](_0xbc55e0[0x0],_0xbc55e0[0x1]);}this['canvasContext']['stroke']();}},{'key':'_tomap','value':function _0x432ae1(_0x93a0ca,_0x4e3011,_0x4531dc){var _0x2826fc=_0x5a24bc,_0x15e14c=Cesium['Cartesian3']['fromDegrees'](_0x93a0ca,_0x4e3011,this[_0x2826fc(0x2c3)]),_0x575a55=this['_map']['scene'];if(_0x575a55[_0x2826fc(0x2aa)]===Cesium[_0x2826fc(0x2a3)]['SCENE3D']){var _0x3d4bb1=new Cesium['EllipsoidalOccluder'](_0x575a55['globe']['ellipsoid'],_0x575a55['camera']['positionWC']),_0x1efebf=_0x3d4bb1['isPointVisible'](_0x15e14c);if(!_0x1efebf)return _0x4531dc['age']=0x0,null;}var _0x15b627=Cesium[_0x2826fc(0x24e)][_0x2826fc(0x1ef)](this['_map']['scene'],_0x15e14c);return _0x15b627?[_0x15b627['x'],_0x15b627['y']]:null;}},{'key':'clear','value':function _0x39da78(){var _0x5a9b11=_0x5a24bc;this['windField'][_0x5a9b11(0x2bb)](),delete this[_0x5a9b11(0x1eb)];}},{'key':'initWorker','value':function _0x35beac(){var _0x526631=_0x5a24bc,_0xf12c52=this;this[_0x526631(0x23a)]=new Worker(this[_0x526631(0x2d6)]['worker']),this[_0x526631(0x23a)][_0x526631(0x1f6)]=function(_0x4c257b){var _0x159df8=_0x526631;_0xf12c52['_drawLines'](_0x4c257b[_0x159df8(0x276)]['particles']),_0xf12c52['_updateIng2']=![];},this['windField']={'init':function _0x40925c(_0xf0c045){var _0x5240f5=_0x526631;_0xf12c52[_0x5240f5(0x23a)]['postMessage']({'type':'init','options':_0xf0c045});},'setOptions':function _0x23d5da(_0x1b8054){var _0x269167=_0x526631;_0xf12c52['worker'][_0x269167(0x27c)]({'type':_0x269167(0x20e),'options':_0x1b8054});},'setDate':function _0x3664f2(_0x3d7826){var _0x5738ac=_0x526631;_0xf12c52['worker'][_0x5738ac(0x27c)]({'type':'setDate','data':_0x3d7826});},'update':function _0x468beb(){var _0x26f314=_0x526631;if(_0xf12c52['_updateIng2'])return;_0xf12c52[_0x26f314(0x223)]=!![],_0xf12c52['worker']['postMessage']({'type':_0x26f314(0x2b6)});},'clear':function _0x1a48b3(){var _0x809ef4=_0x526631;_0xf12c52[_0x809ef4(0x23a)]['postMessage']({'type':'clear'});}},this[_0x526631(0x1e8)]['init'](this['options']);}}]),_0x6f0da8;}(BaseLayer);mars3d__namespace['LayerUtil']['register']('canvasWind',CanvasWindLayer),mars3d__namespace['layer'][_0x5a552b(0x26f)]=CanvasWindLayer,mars3d__namespace[_0x5a552b(0x242)]=CanvasWindField,mars3d__namespace['WindUtil']=WindUtil,exports['CanvasWindField']=CanvasWindField,exports[_0x5a552b(0x26f)]=CanvasWindLayer,exports['WindLayer']=WindLayer,exports[_0x5a552b(0x271)]=WindUtil,Object['defineProperty'](exports,'__esModule',{'value':!![]});
14
+ 'use strict';var _0x25db9a=_0x4750;(function(_0xf3b9e4,_0x399533){var _0x44c9fa=_0x4750,_0x49fa1d=_0xf3b9e4();while(!![]){try{var _0x14e606=-parseInt(_0x44c9fa(0x108))/0x1*(parseInt(_0x44c9fa(0x87))/0x2)+-parseInt(_0x44c9fa(0xde))/0x3*(parseInt(_0x44c9fa(0xc6))/0x4)+-parseInt(_0x44c9fa(0x15e))/0x5+-parseInt(_0x44c9fa(0xe8))/0x6+parseInt(_0x44c9fa(0x13b))/0x7*(parseInt(_0x44c9fa(0x147))/0x8)+-parseInt(_0x44c9fa(0xd0))/0x9*(-parseInt(_0x44c9fa(0xb1))/0xa)+parseInt(_0x44c9fa(0xcb))/0xb;if(_0x14e606===_0x399533)break;else _0x49fa1d['push'](_0x49fa1d['shift']());}catch(_0x3913e3){_0x49fa1d['push'](_0x49fa1d['shift']());}}}(_0x130f,0x79b3f));function _0x4750(_0x118a31,_0x4d7d4a){var _0x130f0e=_0x130f();return _0x4750=function(_0x475037,_0x1eea6f){_0x475037=_0x475037-0x85;var _0x130c56=_0x130f0e[_0x475037];return _0x130c56;},_0x4750(_0x118a31,_0x4d7d4a);}function _interopNamespace(_0x54f4a7){if(_0x54f4a7&&_0x54f4a7['__esModule'])return _0x54f4a7;var _0x5ae1c4=Object['create'](null);return _0x54f4a7&&Object['keys'](_0x54f4a7)['forEach'](function(_0x29707f){var _0x5c5866=_0x4750;if(_0x29707f!=='default'){var _0x4f0e82=Object['getOwnPropertyDescriptor'](_0x54f4a7,_0x29707f);Object[_0x5c5866(0xfb)](_0x5ae1c4,_0x29707f,_0x4f0e82['get']?_0x4f0e82:{'enumerable':!![],'get':function(){return _0x54f4a7[_0x29707f];}});}}),_0x5ae1c4['default']=_0x54f4a7,_0x5ae1c4;}var mars3d__namespace=_interopNamespace(mars3d),Cesium$7=mars3d__namespace['Cesium'];function getU(_0x569b85,_0x549c05){var _0x5631a8=_0x569b85*Math['cos'](Cesium$7['Math']['toRadians'](_0x549c05));return _0x5631a8;}function getV(_0x595cee,_0x41a4da){var _0x4344a8=_0x595cee*Math['sin'](Cesium$7['Math']['toRadians'](_0x41a4da));return _0x4344a8;}function getSpeed(_0x415c22,_0x19a42d){var _0x499ec9=_0x4750,_0x18c2c0=Math['sqrt'](Math['pow'](_0x415c22,0x2)+Math[_0x499ec9(0xf1)](_0x19a42d,0x2));return _0x18c2c0;}function getDirection(_0xea3e21,_0x2d2417){var _0x110041=_0x4750,_0x41bcb2=Cesium$7[_0x110041(0x88)]['toDegrees'](Math[_0x110041(0x14d)](_0x2d2417,_0xea3e21));return _0x41bcb2+=_0x41bcb2<0x0?0x168:0x0,_0x41bcb2;}var WindUtil={'__proto__':null,'getU':getU,'getV':getV,'getSpeed':getSpeed,'getDirection':getDirection};function ownKeys(_0x46f10f,_0x411b07){var _0x1e932c=_0x4750,_0xc05841=Object['keys'](_0x46f10f);if(Object['getOwnPropertySymbols']){var _0x504110=Object['getOwnPropertySymbols'](_0x46f10f);_0x411b07&&(_0x504110=_0x504110[_0x1e932c(0x9a)](function(_0x29ac96){var _0x187ea4=_0x1e932c;return Object['getOwnPropertyDescriptor'](_0x46f10f,_0x29ac96)[_0x187ea4(0x122)];})),_0xc05841['push']['apply'](_0xc05841,_0x504110);}return _0xc05841;}function _objectSpread2(_0x202bf5){var _0x4b210f=_0x4750;for(var _0x1e8073=0x1;_0x1e8073<arguments['length'];_0x1e8073++){var _0x140132=null!=arguments[_0x1e8073]?arguments[_0x1e8073]:{};_0x1e8073%0x2?ownKeys(Object(_0x140132),!0x0)['forEach'](function(_0x2e703f){_defineProperty(_0x202bf5,_0x2e703f,_0x140132[_0x2e703f]);}):Object['getOwnPropertyDescriptors']?Object['defineProperties'](_0x202bf5,Object['getOwnPropertyDescriptors'](_0x140132)):ownKeys(Object(_0x140132))[_0x4b210f(0xdd)](function(_0x575bfd){var _0x4fab06=_0x4b210f;Object[_0x4fab06(0xfb)](_0x202bf5,_0x575bfd,Object[_0x4fab06(0x174)](_0x140132,_0x575bfd));});}return _0x202bf5;}function _classCallCheck(_0x28b12c,_0x4589cb){var _0x41c4ad=_0x4750;if(!(_0x28b12c instanceof _0x4589cb))throw new TypeError(_0x41c4ad(0x86));}function _defineProperties(_0x458cb3,_0x590bb2){var _0x1ee3f8=_0x4750;for(var _0x13c738=0x0;_0x13c738<_0x590bb2[_0x1ee3f8(0x93)];_0x13c738++){var _0x28edd2=_0x590bb2[_0x13c738];_0x28edd2['enumerable']=_0x28edd2['enumerable']||![],_0x28edd2['configurable']=!![];if(_0x1ee3f8(0xea)in _0x28edd2)_0x28edd2['writable']=!![];Object[_0x1ee3f8(0xfb)](_0x458cb3,_0x28edd2['key'],_0x28edd2);}}function _createClass(_0x254be5,_0x47ee7c,_0x69041d){var _0x50c5a5=_0x4750;if(_0x47ee7c)_defineProperties(_0x254be5['prototype'],_0x47ee7c);if(_0x69041d)_defineProperties(_0x254be5,_0x69041d);return Object[_0x50c5a5(0xfb)](_0x254be5,'prototype',{'writable':![]}),_0x254be5;}function _0x130f(){var _0xb34fc3=['strokeStyle','Cannot\x20call\x20a\x20class\x20as\x20a\x20function','6522HPEJuR','Math','commandList','_onMap_preRenderEvent','updateSpeed','push','tlat','uniformMap','DrawCommand','attributeLocations','@@iterator','vmax','length','CanvasWindLayer','particlesRendering','globalCompositeOperation','options','clear','age','filter','getRandomLatLng','ShaderSource','framebuffer','mouseMove','FLOAT','getUVByXY','primitives','call','particleSystem','depthTexture','segmentsColor','context','destroy','layer','mouse_move','initWorker','latRange','Geometry','data','resize','100%','lev','359400BgKIVO','visible','autoClear','destroyParticlesTextures','umin','createCommand','ymin','lineWidth','getPixelSize','getOptions','_data','mouseDown','Draw','onmessage','string','_map','OPAQUE','primitiveType','getDefaultRenderState','round','WindUtil','10576aEdPFK','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}','cols','PrimitiveType','style','11992057dpVACG','VertexArray','segments','clearCommand','LUMINANCE','45INHUji','nextTrails','particles','refreshParticles','windField','currentParticlesSpeed','xmin','redraw','_onMapWhellEvent','lat','color','canvasHeight','colorTable','forEach','747bOYvCU','windTextures','commandType','floor','canvas','vdata','lon','createSegmentsGeometry','fadeOpacity','geometry','3648852amXMcu','colors','value','randomizeParticles','particlesComputing','pointerEvents','keys','rows','defined','pow','clearFramebuffers','STATIC_DRAW','__proto__','dimensions','RGBA','array','_speedRate','randomBetween','Cartesian3','defineProperty','fillRect','off','currentTrails','add','visibility','textures','commandToExecute','ComponentDatatype','particlesTextureSize','ellipsoid','Set','getParticles','37qOJiSe','show','ALWAYS','speedRate','updatePosition','Cartesian2','pixelSize','getFullscreenQuad','clientHeight','TRIANGLES','_maxAge','TextureMinificationFilter','postMessage','max','dropRateBump','_onMouseMoveEvent','remove','particlesNumber','isInExtent','register','outputTexture','prototype','_setOptionsHook','drawingBufferHeight','apply','bindEvent','enumerable','Compute','framebuffers','particlesTextures','Derived\x20constructors\x20may\x20only\x20return\x20object\x20or\x20undefined','worker','DepthFunction','fixedHeight','positionWC','createParticlesTextures','tlng','removeAll','PI_OVER_TWO','create','random','vertexArray','xmax','lonRange','createRenderingFramebuffers','_createCanvas','BoundingSphere','createRenderingTextures','appendChild','animateFrame','setOptions','981659nDmSuP','setAttribute','hidden','grid','fromCssColorString','viewerParameters','camera','maxAge','postProcessingPosition','bind','createTexture','trails','56plpigm','canvasContext','reverseY','0px','mouseUp','log','atan2','updateViewerParameters','constructor','getPrototypeOf','_calcUV','toDegrees','addPrimitives','mouse_down','min','_onMouseUpEvent','scene','shaderProgram','fromGeometry','getUVByPoint','undefined','_addedHook','update','1829480jUkBgJ','_onMouseDownEvent','Matrix4','PixelFormat','_pointerEvents','_drawLines','currentParticlesPosition','Cesium','canvasWidth','GeometryAttribute','NEAREST','TWO_PI','fill','Invalid\x20attempt\x20to\x20spread\x20non-iterable\x20instance.\x0aIn\x20order\x20to\x20be\x20iterable,\x20non-array\x20objects\x20must\x20have\x20a\x20[Symbol.iterator]()\x20method.','ymax','beginPath','arrayBufferView','Sampler','red','EventType','windData','getWind','getOwnPropertyDescriptor','postProcessingSpeed','maxParticles','DISABLE_LOG_DEPTH_FRAGMENT_WRITE'];_0x130f=function(){return _0xb34fc3;};return _0x130f();}function _defineProperty(_0x272f6d,_0x7a4a8b,_0x35ce8d){var _0x20f957=_0x4750;return _0x7a4a8b in _0x272f6d?Object[_0x20f957(0xfb)](_0x272f6d,_0x7a4a8b,{'value':_0x35ce8d,'enumerable':!![],'configurable':!![],'writable':!![]}):_0x272f6d[_0x7a4a8b]=_0x35ce8d,_0x272f6d;}function _inherits(_0x2be85d,_0x5a3535){var _0x6671e4=_0x4750;if(typeof _0x5a3535!=='function'&&_0x5a3535!==null)throw new TypeError('Super\x20expression\x20must\x20either\x20be\x20null\x20or\x20a\x20function');_0x2be85d['prototype']=Object[_0x6671e4(0x12f)](_0x5a3535&&_0x5a3535['prototype'],{'constructor':{'value':_0x2be85d,'writable':!![],'configurable':!![]}}),Object['defineProperty'](_0x2be85d,'prototype',{'writable':![]});if(_0x5a3535)_setPrototypeOf(_0x2be85d,_0x5a3535);}function _getPrototypeOf(_0x3a57c3){var _0x4f3b54=_0x4750;return _getPrototypeOf=Object['setPrototypeOf']?Object[_0x4f3b54(0x150)]['bind']():function _0xa43630(_0x55c96b){var _0x5ee2b3=_0x4f3b54;return _0x55c96b['__proto__']||Object[_0x5ee2b3(0x150)](_0x55c96b);},_getPrototypeOf(_0x3a57c3);}function _setPrototypeOf(_0x3fb42c,_0x5cf7f7){return _setPrototypeOf=Object['setPrototypeOf']?Object['setPrototypeOf']['bind']():function _0x354ffe(_0x19b459,_0x314f6a){var _0x336f7c=_0x4750;return _0x19b459[_0x336f7c(0xf4)]=_0x314f6a,_0x19b459;},_setPrototypeOf(_0x3fb42c,_0x5cf7f7);}function _isNativeReflectConstruct(){var _0x330b4b=_0x4750;if(typeof Reflect===_0x330b4b(0x15b)||!Reflect['construct'])return![];if(Reflect['construct']['sham'])return![];if(typeof Proxy==='function')return!![];try{return Boolean[_0x330b4b(0x11d)]['valueOf'][_0x330b4b(0xa2)](Reflect['construct'](Boolean,[],function(){})),!![];}catch(_0x4c70ca){return![];}}function _assertThisInitialized(_0x551175){if(_0x551175===void 0x0)throw new ReferenceError('this\x20hasn\x27t\x20been\x20initialised\x20-\x20super()\x20hasn\x27t\x20been\x20called');return _0x551175;}function _possibleConstructorReturn(_0x496348,_0x5c8b1f){var _0x15ed00=_0x4750;if(_0x5c8b1f&&(typeof _0x5c8b1f==='object'||typeof _0x5c8b1f==='function'))return _0x5c8b1f;else{if(_0x5c8b1f!==void 0x0)throw new TypeError(_0x15ed00(0x126));}return _assertThisInitialized(_0x496348);}function _createSuper(_0x1f770e){var _0x2f50ff=_isNativeReflectConstruct();return function _0x352a48(){var _0x394a7c=_0x4750,_0x3a46c0=_getPrototypeOf(_0x1f770e),_0x570abd;if(_0x2f50ff){var _0x3bed0e=_getPrototypeOf(this)['constructor'];_0x570abd=Reflect['construct'](_0x3a46c0,arguments,_0x3bed0e);}else _0x570abd=_0x3a46c0[_0x394a7c(0x120)](this,arguments);return _possibleConstructorReturn(this,_0x570abd);};}function _toConsumableArray(_0x9340d3){return _arrayWithoutHoles(_0x9340d3)||_iterableToArray(_0x9340d3)||_unsupportedIterableToArray(_0x9340d3)||_nonIterableSpread();}function _arrayWithoutHoles(_0xbfb9f2){if(Array['isArray'](_0xbfb9f2))return _arrayLikeToArray(_0xbfb9f2);}function _iterableToArray(_0x105d94){var _0x19ac91=_0x4750;if(typeof Symbol!=='undefined'&&_0x105d94[Symbol['iterator']]!=null||_0x105d94[_0x19ac91(0x91)]!=null)return Array['from'](_0x105d94);}function _unsupportedIterableToArray(_0x52a82a,_0x3ea721){var _0x474ca3=_0x4750;if(!_0x52a82a)return;if(typeof _0x52a82a===_0x474ca3(0xbf))return _arrayLikeToArray(_0x52a82a,_0x3ea721);var _0xdb7fc0=Object[_0x474ca3(0x11d)]['toString'][_0x474ca3(0xa2)](_0x52a82a)['slice'](0x8,-0x1);if(_0xdb7fc0==='Object'&&_0x52a82a['constructor'])_0xdb7fc0=_0x52a82a[_0x474ca3(0x14f)]['name'];if(_0xdb7fc0==='Map'||_0xdb7fc0===_0x474ca3(0x106))return Array['from'](_0x52a82a);if(_0xdb7fc0==='Arguments'||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/['test'](_0xdb7fc0))return _arrayLikeToArray(_0x52a82a,_0x3ea721);}function _arrayLikeToArray(_0x4ee7bb,_0x33834a){var _0x2fed3e=_0x4750;if(_0x33834a==null||_0x33834a>_0x4ee7bb[_0x2fed3e(0x93)])_0x33834a=_0x4ee7bb['length'];for(var _0x18eed3=0x0,_0x29faae=new Array(_0x33834a);_0x18eed3<_0x33834a;_0x18eed3++)_0x29faae[_0x18eed3]=_0x4ee7bb[_0x18eed3];return _0x29faae;}function _nonIterableSpread(){var _0x13677b=_0x4750;throw new TypeError(_0x13677b(0x16b));}var Cesium$6=mars3d__namespace['Cesium'],CustomPrimitive=(function(){var _0x57f528=_0x4750;function _0x46d9d7(_0x9e4c2d){var _0x1690af=_0x4750,_0x3cb457;_classCallCheck(this,_0x46d9d7),this[_0x1690af(0xe0)]=_0x9e4c2d[_0x1690af(0xe0)],this['geometry']=_0x9e4c2d[_0x1690af(0xe7)],this['attributeLocations']=_0x9e4c2d[_0x1690af(0x90)],this['primitiveType']=_0x9e4c2d[_0x1690af(0xc2)],this['uniformMap']=_0x9e4c2d[_0x1690af(0x8e)],this['vertexShaderSource']=_0x9e4c2d['vertexShaderSource'],this['fragmentShaderSource']=_0x9e4c2d['fragmentShaderSource'],this['rawRenderState']=_0x9e4c2d['rawRenderState'],this['framebuffer']=_0x9e4c2d[_0x1690af(0x9d)],this[_0x1690af(0x11c)]=_0x9e4c2d['outputTexture'],this[_0x1690af(0xb3)]=(_0x3cb457=_0x9e4c2d[_0x1690af(0xb3)])!==null&&_0x3cb457!==void 0x0?_0x3cb457:![],this['preExecute']=_0x9e4c2d['preExecute'],this['show']=!![],this['commandToExecute']=undefined,this['clearCommand']=undefined,this['autoClear']&&(this['clearCommand']=new Cesium$6['ClearCommand']({'color':new Cesium$6['Color'](0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this['framebuffer'],'pass':Cesium$6['Pass']['OPAQUE']}));}return _createClass(_0x46d9d7,[{'key':_0x57f528(0xb6),'value':function _0x1d035f(_0x45d456){var _0x5ae254=_0x57f528;switch(this['commandType']){case _0x5ae254(0xbd):{var _0x17ff07=Cesium$6[_0x5ae254(0xcc)][_0x5ae254(0x159)]({'context':_0x45d456,'geometry':this['geometry'],'attributeLocations':this[_0x5ae254(0x90)],'bufferUsage':Cesium$6['BufferUsage'][_0x5ae254(0xf3)]}),_0x21ebaf=Cesium$6['ShaderProgram']['fromCache']({'context':_0x45d456,'attributeLocations':this[_0x5ae254(0x90)],'vertexShaderSource':this['vertexShaderSource'],'fragmentShaderSource':this['fragmentShaderSource']}),_0x3ea030=Cesium$6['RenderState']['fromCache'](this['rawRenderState']);return new Cesium$6[(_0x5ae254(0x8f))]({'primitiveType':this['primitiveType'],'shaderProgram':_0x21ebaf,'vertexArray':_0x17ff07,'modelMatrix':Cesium$6[_0x5ae254(0x160)]['IDENTITY'],'renderState':_0x3ea030,'uniformMap':this['uniformMap'],'castShadows':![],'receiveShadows':![],'framebuffer':this[_0x5ae254(0x9d)],'pass':Cesium$6['Pass'][_0x5ae254(0xc1)],'pickOnly':!![],'owner':this});}case'Compute':{return new Cesium$6['ComputeCommand']({'owner':this,'fragmentShaderSource':this['fragmentShaderSource'],'uniformMap':this[_0x5ae254(0x8e)],'outputTexture':this['outputTexture'],'persists':!![]});}}}},{'key':'setGeometry','value':function _0xffce2b(_0x5718bb,_0x491aa0){var _0x24d8be=_0x57f528;this['geometry']=_0x491aa0;var _0x16ba09=Cesium$6['VertexArray'][_0x24d8be(0x159)]({'context':_0x5718bb,'geometry':this['geometry'],'attributeLocations':this['attributeLocations'],'bufferUsage':Cesium$6['BufferUsage'][_0x24d8be(0xf3)]});this['commandToExecute']['vertexArray']=_0x16ba09;}},{'key':_0x57f528(0x15d),'value':function _0x4ce0c7(_0x288120){var _0x5c4fa5=_0x57f528;if(!this['show'])return;if(_0x288120['mode']!==Cesium$6['SceneMode']['SCENE3D'])return;!Cesium$6['defined'](this['commandToExecute'])&&(this[_0x5c4fa5(0x102)]=this['createCommand'](_0x288120['context'])),Cesium$6['defined'](this['preExecute'])&&this['preExecute'](),Cesium$6[_0x5c4fa5(0xf0)](this['clearCommand'])&&_0x288120['commandList'][_0x5c4fa5(0x8c)](this[_0x5c4fa5(0xce)]),_0x288120[_0x5c4fa5(0x89)]['push'](this['commandToExecute']);}},{'key':'isDestroyed','value':function _0x97ab8d(){return![];}},{'key':'destroy','value':function _0x39b0f0(){var _0x199071=_0x57f528;if(this['clearCommand']){var _0x3c4887,_0x4c8639;(_0x3c4887=this['clearCommand'])!==null&&_0x3c4887!==void 0x0&&_0x3c4887['vertexArray']&&this['clearCommand'][_0x199071(0x131)]['destroy'](),(_0x4c8639=this[_0x199071(0xce)])!==null&&_0x4c8639!==void 0x0&&_0x4c8639['shaderProgram']&&this['clearCommand'][_0x199071(0x158)][_0x199071(0xa7)](),delete this[_0x199071(0xce)];}return this['commandToExecute']&&(this[_0x199071(0x102)]['vertexArray']&&this['commandToExecute']['vertexArray']['destroy'](),this['commandToExecute'][_0x199071(0x158)]&&this['commandToExecute']['shaderProgram']['destroy'](),delete this['commandToExecute']),Cesium$6['destroyObject'](this);}}]),_0x46d9d7;}()),Cesium$5=mars3d__namespace['Cesium'],Util=(function(){var _0x5df4d5=function _0x21b9a0(){var _0xbfeebd=_0x4750,_0x3f8088=new Cesium$5[(_0xbfeebd(0xac))]({'attributes':new Cesium$5['GeometryAttributes']({'position':new Cesium$5[(_0xbfeebd(0x167))]({'componentDatatype':Cesium$5['ComponentDatatype'][_0xbfeebd(0x9f)],'componentsPerAttribute':0x3,'values':new Float32Array([-0x1,-0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0,-0x1,0x1,0x0])}),'st':new Cesium$5[(_0xbfeebd(0x167))]({'componentDatatype':Cesium$5[_0xbfeebd(0x103)]['FLOAT'],'componentsPerAttribute':0x2,'values':new Float32Array([0x0,0x0,0x1,0x0,0x1,0x1,0x0,0x1])})}),'indices':new Uint32Array([0x3,0x2,0x0,0x0,0x2,0x1])});return _0x3f8088;},_0x50b4a3=function _0x334cbc(_0x232100,_0x4ca5de){var _0x7c1d92=_0x4750;if(Cesium$5['defined'](_0x4ca5de)){var _0x16bc0c={};_0x16bc0c[_0x7c1d92(0x16e)]=_0x4ca5de,_0x232100['source']=_0x16bc0c;}var _0x5bb7b3=new Cesium$5['Texture'](_0x232100);return _0x5bb7b3;},_0x52f4f0=function _0xd27d76(_0x3cfabc,_0x3183a0,_0x2832ce){var _0x330240=new Cesium$5['Framebuffer']({'context':_0x3cfabc,'colorTextures':[_0x3183a0],'depthTexture':_0x2832ce});return _0x330240;},_0x28f716=function _0x159b7a(_0x351126){var _0x4f4f86=_0x4750,_0x2e9ff2=!![],_0x5f265b=![],_0x2e510d={'viewport':_0x351126['viewport'],'depthTest':_0x351126['depthTest'],'depthMask':_0x351126['depthMask'],'blending':_0x351126['blending']},_0x55654f=Cesium$5['Appearance'][_0x4f4f86(0xc3)](_0x2e9ff2,_0x5f265b,_0x2e510d);return _0x55654f;},_0x2989d8=function _0x1e1fcf(_0xbed7aa){var _0x1d9eb1=_0x4750,_0x1a4696={},_0x8e49f7=Cesium$5['Math']['mod'](_0xbed7aa['west'],Cesium$5['Math'][_0x1d9eb1(0x169)]),_0x1eeecf=Cesium$5[_0x1d9eb1(0x88)]['mod'](_0xbed7aa['east'],Cesium$5['Math'][_0x1d9eb1(0x169)]),_0x2d7ebf=_0xbed7aa['width'],_0xdc714f,_0x593250;_0x2d7ebf>Cesium$5['Math']['THREE_PI_OVER_TWO']?(_0xdc714f=0x0,_0x593250=Cesium$5['Math'][_0x1d9eb1(0x169)]):_0x1eeecf-_0x8e49f7<_0x2d7ebf?(_0xdc714f=_0x8e49f7,_0x593250=_0x8e49f7+_0x2d7ebf):(_0xdc714f=_0x8e49f7,_0x593250=_0x1eeecf);_0x1a4696[_0x1d9eb1(0xe4)]={'min':Cesium$5['Math']['toDegrees'](_0xdc714f),'max':Cesium$5['Math'][_0x1d9eb1(0x152)](_0x593250)};var _0xfad965=_0xbed7aa['south'],_0x8de97a=_0xbed7aa['north'],_0x105089=_0xbed7aa['height'],_0xc94e71=_0x105089>Cesium$5[_0x1d9eb1(0x88)]['PI']/0xc?_0x105089/0x2:0x0,_0x553dfd=Cesium$5[_0x1d9eb1(0x88)]['clampToLatitudeRange'](_0xfad965-_0xc94e71),_0xfd890f=Cesium$5[_0x1d9eb1(0x88)]['clampToLatitudeRange'](_0x8de97a+_0xc94e71);return _0x553dfd<-Cesium$5[_0x1d9eb1(0x88)]['PI_OVER_THREE']&&(_0x553dfd=-Cesium$5['Math'][_0x1d9eb1(0x12e)]),_0xfd890f>Cesium$5['Math']['PI_OVER_THREE']&&(_0xfd890f=Cesium$5[_0x1d9eb1(0x88)][_0x1d9eb1(0x12e)]),_0x1a4696['lat']={'min':Cesium$5['Math'][_0x1d9eb1(0x152)](_0x553dfd),'max':Cesium$5[_0x1d9eb1(0x88)]['toDegrees'](_0xfd890f)},_0x1a4696;};return{'getFullscreenQuad':_0x5df4d5,'createTexture':_0x50b4a3,'createFramebuffer':_0x52f4f0,'createRawRenderState':_0x28f716,'viewRectangleToLonLatRange':_0x2989d8};}()),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='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[_0x25db9a(0x165)],ParticlesRendering=(function(){var _0x30ab0b=_0x25db9a;function _0x310acb(_0x147b8b,_0xc1cd7e,_0x273533,_0x380dce,_0x2347fb){var _0x55669e=_0x4750;_classCallCheck(this,_0x310acb),this['createRenderingTextures'](_0x147b8b,_0xc1cd7e,_0x273533['colors']),this[_0x55669e(0x134)](_0x147b8b),this['createRenderingPrimitives'](_0x147b8b,_0x273533,_0x380dce,_0x2347fb);}return _createClass(_0x310acb,[{'key':_0x30ab0b(0x137),'value':function _0x5eaa49(_0x3984dd,_0xc5036f,_0x9ade35){var _0x46ac84=_0x30ab0b,_0x5c6e2f={'context':_0x3984dd,'width':_0x3984dd['drawingBufferWidth'],'height':_0x3984dd['drawingBufferHeight'],'pixelFormat':Cesium$4[_0x46ac84(0x161)][_0x46ac84(0xf6)],'pixelDatatype':Cesium$4['PixelDatatype']['UNSIGNED_BYTE']},_0x275c25={'context':_0x3984dd,'width':_0x3984dd['drawingBufferWidth'],'height':_0x3984dd[_0x46ac84(0x11f)],'pixelFormat':Cesium$4['PixelFormat']['DEPTH_COMPONENT'],'pixelDatatype':Cesium$4['PixelDatatype']['UNSIGNED_INT']},_0x7997a6=_0x9ade35['length'],_0x52a773=new Float32Array(_0x7997a6*0x3);for(var _0x32676b=0x0;_0x32676b<_0x7997a6;_0x32676b++){var _0x40c9f7=Cesium$4['Color'][_0x46ac84(0x13f)](_0x9ade35[_0x32676b]);_0x52a773[0x3*_0x32676b]=_0x40c9f7[_0x46ac84(0x170)],_0x52a773[0x3*_0x32676b+0x1]=_0x40c9f7['green'],_0x52a773[0x3*_0x32676b+0x2]=_0x40c9f7['blue'];}var _0x46f833={'context':_0x3984dd,'width':_0x7997a6,'height':0x1,'pixelFormat':Cesium$4[_0x46ac84(0x161)]['RGB'],'pixelDatatype':Cesium$4['PixelDatatype'][_0x46ac84(0x9f)],'sampler':new Cesium$4[(_0x46ac84(0x16f))]({'minificationFilter':Cesium$4['TextureMinificationFilter']['LINEAR'],'magnificationFilter':Cesium$4['TextureMagnificationFilter']['LINEAR']})};this[_0x46ac84(0x101)]={'segmentsColor':Util['createTexture'](_0x5c6e2f),'segmentsDepth':Util['createTexture'](_0x275c25),'currentTrailsColor':Util['createTexture'](_0x5c6e2f),'currentTrailsDepth':Util['createTexture'](_0x275c25),'nextTrailsColor':Util['createTexture'](_0x5c6e2f),'nextTrailsDepth':Util['createTexture'](_0x275c25),'colorTable':Util['createTexture'](_0x46f833,_0x52a773)};}},{'key':_0x30ab0b(0x134),'value':function _0x1b3ec8(_0x481979){var _0x8fbabe=_0x30ab0b;this['framebuffers']={'segments':Util['createFramebuffer'](_0x481979,this['textures'][_0x8fbabe(0xa5)],this[_0x8fbabe(0x101)]['segmentsDepth']),'currentTrails':Util['createFramebuffer'](_0x481979,this['textures']['currentTrailsColor'],this['textures']['currentTrailsDepth']),'nextTrails':Util['createFramebuffer'](_0x481979,this['textures']['nextTrailsColor'],this['textures']['nextTrailsDepth'])};}},{'key':'createSegmentsGeometry','value':function _0x4daa0(_0x53b5ba){var _0x25f445=_0x30ab0b,_0x1f1fd2=0x4,_0x10139d=[];for(var _0x308a4a=0x0;_0x308a4a<_0x53b5ba[_0x25f445(0x104)];_0x308a4a++){for(var _0x38a7aa=0x0;_0x38a7aa<_0x53b5ba['particlesTextureSize'];_0x38a7aa++){for(var _0x8887a2=0x0;_0x8887a2<_0x1f1fd2;_0x8887a2++){_0x10139d[_0x25f445(0x8c)](_0x308a4a/_0x53b5ba['particlesTextureSize']),_0x10139d['push'](_0x38a7aa/_0x53b5ba[_0x25f445(0x104)]);}}}_0x10139d=new Float32Array(_0x10139d);var _0x34a4f8=[],_0xd274d0=[-0x1,0x1],_0x527114=[-0x1,0x1];for(var _0x4b7675=0x0;_0x4b7675<_0x53b5ba['maxParticles'];_0x4b7675++){for(var _0x4e91b9=0x0;_0x4e91b9<_0x1f1fd2/0x2;_0x4e91b9++){for(var _0x2fdb62=0x0;_0x2fdb62<_0x1f1fd2/0x2;_0x2fdb62++){_0x34a4f8['push'](_0xd274d0[_0x4e91b9]),_0x34a4f8['push'](_0x527114[_0x2fdb62]),_0x34a4f8['push'](0x0);}}}_0x34a4f8=new Float32Array(_0x34a4f8);var _0xa4bcc7=0x6*_0x53b5ba[_0x25f445(0x176)],_0x49c402=new Uint32Array(_0xa4bcc7);for(var _0xa6e340=0x0,_0x3baa75=0x0,_0x2aa987=0x0;_0xa6e340<_0x53b5ba['maxParticles'];_0xa6e340++){_0x49c402[_0x3baa75++]=_0x2aa987+0x0,_0x49c402[_0x3baa75++]=_0x2aa987+0x1,_0x49c402[_0x3baa75++]=_0x2aa987+0x2,_0x49c402[_0x3baa75++]=_0x2aa987+0x2,_0x49c402[_0x3baa75++]=_0x2aa987+0x1,_0x49c402[_0x3baa75++]=_0x2aa987+0x3,_0x2aa987+=0x4;}var _0x3f3133=new Cesium$4['Geometry']({'attributes':new Cesium$4['GeometryAttributes']({'st':new Cesium$4['GeometryAttribute']({'componentDatatype':Cesium$4[_0x25f445(0x103)][_0x25f445(0x9f)],'componentsPerAttribute':0x2,'values':_0x10139d}),'normal':new Cesium$4[(_0x25f445(0x167))]({'componentDatatype':Cesium$4[_0x25f445(0x103)]['FLOAT'],'componentsPerAttribute':0x3,'values':_0x34a4f8})}),'indices':_0x49c402});return _0x3f3133;}},{'key':'createRenderingPrimitives','value':function _0x1ef128(_0x30936e,_0x22299b,_0x14da17,_0x58e036){var _0x201b73=_0x30ab0b,_0x375401=this;this[_0x201b73(0xa1)]={'segments':new CustomPrimitive({'commandType':_0x201b73(0xbd),'attributeLocations':{'st':0x0,'normal':0x1},'geometry':this['createSegmentsGeometry'](_0x22299b),'primitiveType':Cesium$4[_0x201b73(0xc9)]['TRIANGLES'],'uniformMap':{'currentParticlesPosition':function _0x1f1cf8(){return _0x58e036['particlesTextures']['currentParticlesPosition'];},'postProcessingPosition':function _0x155e0e(){var _0x5ad1f4=_0x201b73;return _0x58e036['particlesTextures'][_0x5ad1f4(0x143)];},'postProcessingSpeed':function _0x5d63b5(){var _0x4b6827=_0x201b73;return _0x58e036['particlesTextures'][_0x4b6827(0x175)];},'colorTable':function _0x279f91(){var _0x5f0f8b=_0x201b73;return _0x375401[_0x5f0f8b(0x101)][_0x5f0f8b(0xdc)];},'aspect':function _0x1052f6(){var _0x3dfef6=_0x201b73;return _0x30936e['drawingBufferWidth']/_0x30936e[_0x3dfef6(0x11f)];},'pixelSize':function _0x137ffc(){return _0x14da17['pixelSize'];},'lineWidth':function _0x298413(){var _0x18d637=_0x201b73;return _0x22299b[_0x18d637(0xb8)];},'particleHeight':function _0x304933(){return _0x22299b['particleHeight'];}},'vertexShaderSource':new Cesium$4[(_0x201b73(0x9c))]({'sources':[segmentDraw_vert]}),'fragmentShaderSource':new Cesium$4['ShaderSource']({'sources':[segmentDraw_frag]}),'rawRenderState':Util['createRawRenderState']({'viewport':undefined,'depthTest':{'enabled':!![]},'depthMask':!![]}),'framebuffer':this['framebuffers']['segments'],'autoClear':!![]}),'trails':new CustomPrimitive({'commandType':_0x201b73(0xbd),'attributeLocations':{'position':0x0,'st':0x1},'geometry':Util['getFullscreenQuad'](),'primitiveType':Cesium$4['PrimitiveType']['TRIANGLES'],'uniformMap':{'segmentsColorTexture':function _0x5181c0(){var _0x52e68b=_0x201b73;return _0x375401[_0x52e68b(0x101)]['segmentsColor'];},'segmentsDepthTexture':function _0xd84e9f(){return _0x375401['textures']['segmentsDepth'];},'currentTrailsColor':function _0x370ea0(){var _0x46746b=_0x201b73;return _0x375401['framebuffers'][_0x46746b(0xfe)]['getColorTexture'](0x0);},'trailsDepthTexture':function _0x531d8f(){var _0x19f39d=_0x201b73;return _0x375401[_0x19f39d(0x124)][_0x19f39d(0xfe)][_0x19f39d(0xa4)];},'fadeOpacity':function _0x3da127(){var _0x1ec444=_0x201b73;return _0x22299b[_0x1ec444(0xe6)];}},'vertexShaderSource':new Cesium$4['ShaderSource']({'defines':['DISABLE_GL_POSITION_LOG_DEPTH'],'sources':[fullscreen_vert]}),'fragmentShaderSource':new Cesium$4[(_0x201b73(0x9c))]({'defines':['DISABLE_LOG_DEPTH_FRAGMENT_WRITE'],'sources':[trailDraw_frag]}),'rawRenderState':Util['createRawRenderState']({'viewport':undefined,'depthTest':{'enabled':!![],'func':Cesium$4[_0x201b73(0x128)][_0x201b73(0x10a)]},'depthMask':!![]}),'framebuffer':this[_0x201b73(0x124)][_0x201b73(0xd1)],'autoClear':!![],'preExecute':function _0x20f23f(){var _0x26429f=_0x201b73,_0x1d3926=_0x375401['framebuffers']['currentTrails'];_0x375401['framebuffers']['currentTrails']=_0x375401['framebuffers'][_0x26429f(0xd1)],_0x375401['framebuffers'][_0x26429f(0xd1)]=_0x1d3926,_0x375401['primitives']['trails']['commandToExecute']['framebuffer']=_0x375401['framebuffers'][_0x26429f(0xd1)],_0x375401[_0x26429f(0xa1)][_0x26429f(0x146)]['clearCommand'][_0x26429f(0x9d)]=_0x375401['framebuffers']['nextTrails'];}}),'screen':new CustomPrimitive({'commandType':_0x201b73(0xbd),'attributeLocations':{'position':0x0,'st':0x1},'geometry':Util[_0x201b73(0x10f)](),'primitiveType':Cesium$4[_0x201b73(0xc9)][_0x201b73(0x111)],'uniformMap':{'trailsColorTexture':function _0x53d6ef(){return _0x375401['framebuffers']['nextTrails']['getColorTexture'](0x0);},'trailsDepthTexture':function _0x340fea(){var _0x45d761=_0x201b73;return _0x375401[_0x45d761(0x124)][_0x45d761(0xd1)][_0x45d761(0xa4)];}},'vertexShaderSource':new Cesium$4[(_0x201b73(0x9c))]({'defines':['DISABLE_GL_POSITION_LOG_DEPTH'],'sources':[fullscreen_vert]}),'fragmentShaderSource':new Cesium$4[(_0x201b73(0x9c))]({'defines':[_0x201b73(0x177)],'sources':[screenDraw_frag]}),'rawRenderState':Util['createRawRenderState']({'viewport':undefined,'depthTest':{'enabled':![]},'depthMask':!![],'blending':{'enabled':!![]}}),'framebuffer':undefined})};}}]),_0x310acb;}()),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=_0x25db9a(0xc7),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 _0x50f65d=_0x25db9a;function _0xe66580(_0x5e15d7,_0x4aeb89,_0x430415,_0x1b2be1){var _0x9aa874=_0x4750;_classCallCheck(this,_0xe66580),this[_0x9aa874(0xad)]=_0x4aeb89,this['createWindTextures'](_0x5e15d7,_0x4aeb89),this[_0x9aa874(0x12b)](_0x5e15d7,_0x430415,_0x1b2be1),this['createComputingPrimitives'](_0x4aeb89,_0x430415,_0x1b2be1);}return _createClass(_0xe66580,[{'key':'createWindTextures','value':function _0x457bd1(_0xae3148,_0x3d2369){var _0x1bac8b=_0x4750,_0x4ae897={'context':_0xae3148,'width':_0x3d2369[_0x1bac8b(0xf5)]['lon'],'height':_0x3d2369['dimensions']['lat']*(_0x3d2369['dimensions']['lev']||0x1),'pixelFormat':Cesium$3['PixelFormat'][_0x1bac8b(0xcf)],'pixelDatatype':Cesium$3['PixelDatatype']['FLOAT'],'flipY':![],'sampler':new Cesium$3['Sampler']({'minificationFilter':Cesium$3['TextureMinificationFilter'][_0x1bac8b(0x168)],'magnificationFilter':Cesium$3['TextureMagnificationFilter']['NEAREST']})};this['windTextures']={'U':Util[_0x1bac8b(0x145)](_0x4ae897,_0x3d2369['U'][_0x1bac8b(0xf7)]),'V':Util[_0x1bac8b(0x145)](_0x4ae897,_0x3d2369['V'][_0x1bac8b(0xf7)])};}},{'key':_0x50f65d(0x12b),'value':function _0x156dc1(_0x4fcfe7,_0x24c5b1,_0xe7e48a){var _0x10b155=_0x50f65d,_0x3df732={'context':_0x4fcfe7,'width':_0x24c5b1[_0x10b155(0x104)],'height':_0x24c5b1['particlesTextureSize'],'pixelFormat':Cesium$3['PixelFormat']['RGBA'],'pixelDatatype':Cesium$3['PixelDatatype']['FLOAT'],'flipY':![],'sampler':new Cesium$3[(_0x10b155(0x16f))]({'minificationFilter':Cesium$3[_0x10b155(0x113)]['NEAREST'],'magnificationFilter':Cesium$3['TextureMagnificationFilter'][_0x10b155(0x168)]})},_0x46948b=this[_0x10b155(0xeb)](_0x24c5b1[_0x10b155(0x176)],_0xe7e48a),_0x5f2b37=new Float32Array(0x4*_0x24c5b1['maxParticles'])[_0x10b155(0x16a)](0x0);this[_0x10b155(0x125)]={'particlesWind':Util['createTexture'](_0x3df732),'currentParticlesPosition':Util['createTexture'](_0x3df732,_0x46948b),'nextParticlesPosition':Util[_0x10b155(0x145)](_0x3df732,_0x46948b),'currentParticlesSpeed':Util['createTexture'](_0x3df732,_0x5f2b37),'nextParticlesSpeed':Util['createTexture'](_0x3df732,_0x5f2b37),'postProcessingPosition':Util[_0x10b155(0x145)](_0x3df732,_0x46948b),'postProcessingSpeed':Util['createTexture'](_0x3df732,_0x5f2b37)};}},{'key':_0x50f65d(0xeb),'value':function _0x4fbfbd(_0x5d5ff4,_0x308e9e){var _0xe42677=_0x50f65d,_0xc642a0=new Float32Array(0x4*_0x5d5ff4);for(var _0x3633ad=0x0;_0x3633ad<_0x5d5ff4;_0x3633ad++){_0xc642a0[0x4*_0x3633ad]=Cesium$3['Math'][_0xe42677(0xf9)](_0x308e9e['lonRange']['x'],_0x308e9e[_0xe42677(0x133)]['y']),_0xc642a0[0x4*_0x3633ad+0x1]=Cesium$3['Math']['randomBetween'](_0x308e9e['latRange']['x'],_0x308e9e['latRange']['y']),_0xc642a0[0x4*_0x3633ad+0x2]=Cesium$3['Math']['randomBetween'](this[_0xe42677(0xad)]['lev']['min'],this['data']['lev'][_0xe42677(0x115)]),_0xc642a0[0x4*_0x3633ad+0x3]=0x0;}return _0xc642a0;}},{'key':_0x50f65d(0xb4),'value':function _0x37dced(){var _0x470fc6=this;Object['keys'](this['particlesTextures'])['forEach'](function(_0x2aa43f){var _0xa7998e=_0x4750;_0x470fc6[_0xa7998e(0x125)][_0x2aa43f]['destroy']();});}},{'key':'createComputingPrimitives','value':function _0x516aee(_0x539ee7,_0x2d7ada,_0x2f51aa){var _0x4590a0=_0x50f65d,_0x479109=new Cesium$3['Cartesian3'](_0x539ee7['dimensions']['lon'],_0x539ee7['dimensions']['lat'],_0x539ee7['dimensions'][_0x4590a0(0xb0)]),_0x333683=new Cesium$3['Cartesian3'](_0x539ee7['lon']['min'],_0x539ee7['lat']['min'],_0x539ee7['lev'][_0x4590a0(0x155)]),_0x26a104=new Cesium$3[(_0x4590a0(0xfa))](_0x539ee7['lon'][_0x4590a0(0x115)],_0x539ee7['lat'][_0x4590a0(0x115)],_0x539ee7['lev'][_0x4590a0(0x115)]),_0x4f5c26=new Cesium$3['Cartesian3']((_0x26a104['x']-_0x333683['x'])/(_0x479109['x']-0x1),(_0x26a104['y']-_0x333683['y'])/(_0x479109['y']-0x1),_0x479109['z']>0x1?(_0x26a104['z']-_0x333683['z'])/(_0x479109['z']-0x1):0x1),_0x4bee2b=new Cesium$3[(_0x4590a0(0x10d))](_0x539ee7['U'][_0x4590a0(0x155)],_0x539ee7['U'][_0x4590a0(0x115)]),_0x4b0f08=new Cesium$3['Cartesian2'](_0x539ee7['V'][_0x4590a0(0x155)],_0x539ee7['V']['max']),_0xfada1=this;this['primitives']={'getWind':new CustomPrimitive({'commandType':'Compute','uniformMap':{'U':function _0x45f8c9(){return _0xfada1['windTextures']['U'];},'V':function _0x5545cf(){return _0xfada1['windTextures']['V'];},'currentParticlesPosition':function _0x381f08(){return _0xfada1['particlesTextures']['currentParticlesPosition'];},'dimension':function _0x475170(){return _0x479109;},'minimum':function _0x1cf3d6(){return _0x333683;},'maximum':function _0x5e87a9(){return _0x26a104;},'interval':function _0x32314e(){return _0x4f5c26;}},'fragmentShaderSource':new Cesium$3['ShaderSource']({'sources':[getWind_frag]}),'outputTexture':this['particlesTextures']['particlesWind'],'preExecute':function _0x2cb3e2(){var _0x194523=_0x4590a0;_0xfada1['primitives'][_0x194523(0x173)][_0x194523(0x102)]['outputTexture']=_0xfada1[_0x194523(0x125)]['particlesWind'];}}),'updateSpeed':new CustomPrimitive({'commandType':_0x4590a0(0x123),'uniformMap':{'currentParticlesSpeed':function _0x9ee428(){var _0x39e18d=_0x4590a0;return _0xfada1[_0x39e18d(0x125)]['currentParticlesSpeed'];},'particlesWind':function _0x20d452(){return _0xfada1['particlesTextures']['particlesWind'];},'uSpeedRange':function _0x1fd5b4(){return _0x4bee2b;},'vSpeedRange':function _0x3c999b(){return _0x4b0f08;},'pixelSize':function _0x3c3548(){var _0xa75e5e=_0x4590a0;return _0x2f51aa[_0xa75e5e(0x10e)];},'speedFactor':function _0x41cf4b(){return _0x2d7ada['speedFactor'];}},'fragmentShaderSource':new Cesium$3[(_0x4590a0(0x9c))]({'sources':[updateSpeed_frag]}),'outputTexture':this['particlesTextures']['nextParticlesSpeed'],'preExecute':function _0x15fbba(){var _0x1c55bc=_0x4590a0,_0x1f6064=_0xfada1['particlesTextures']['currentParticlesSpeed'];_0xfada1[_0x1c55bc(0x125)]['currentParticlesSpeed']=_0xfada1[_0x1c55bc(0x125)]['postProcessingSpeed'],_0xfada1['particlesTextures']['postProcessingSpeed']=_0x1f6064,_0xfada1['primitives'][_0x1c55bc(0x8b)]['commandToExecute'][_0x1c55bc(0x11c)]=_0xfada1['particlesTextures']['nextParticlesSpeed'];}}),'updatePosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesPosition':function _0x3cd11e(){return _0xfada1['particlesTextures']['currentParticlesPosition'];},'currentParticlesSpeed':function _0x1aa5f6(){var _0x3f787c=_0x4590a0;return _0xfada1[_0x3f787c(0x125)][_0x3f787c(0xd5)];}},'fragmentShaderSource':new Cesium$3['ShaderSource']({'sources':[updatePosition_frag]}),'outputTexture':this['particlesTextures']['nextParticlesPosition'],'preExecute':function _0x1b6430(){var _0x82bfed=_0x4590a0,_0x10d80c=_0xfada1['particlesTextures'][_0x82bfed(0x164)];_0xfada1['particlesTextures']['currentParticlesPosition']=_0xfada1['particlesTextures']['postProcessingPosition'],_0xfada1['particlesTextures']['postProcessingPosition']=_0x10d80c,_0xfada1['primitives']['updatePosition']['commandToExecute']['outputTexture']=_0xfada1['particlesTextures']['nextParticlesPosition'];}}),'postProcessingPosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'nextParticlesPosition':function _0xb48c89(){return _0xfada1['particlesTextures']['nextParticlesPosition'];},'nextParticlesSpeed':function _0x1f0dd6(){return _0xfada1['particlesTextures']['nextParticlesSpeed'];},'lonRange':function _0x2d886c(){var _0x58c625=_0x4590a0;return _0x2f51aa[_0x58c625(0x133)];},'latRange':function _0x1cd2d7(){var _0x8b7fa6=_0x4590a0;return _0x2f51aa[_0x8b7fa6(0xab)];},'randomCoefficient':function _0x306685(){var _0x2c5e44=Math['random']();return _0x2c5e44;},'dropRate':function _0xaa7174(){return _0x2d7ada['dropRate'];},'dropRateBump':function _0xbd0b7d(){return _0x2d7ada['dropRateBump'];}},'fragmentShaderSource':new Cesium$3['ShaderSource']({'sources':[postProcessingPosition_frag]}),'outputTexture':this['particlesTextures'][_0x4590a0(0x143)],'preExecute':function _0x1ff23b(){var _0x34edf5=_0x4590a0;_0xfada1[_0x34edf5(0xa1)]['postProcessingPosition']['commandToExecute']['outputTexture']=_0xfada1['particlesTextures'][_0x34edf5(0x143)];}}),'postProcessingSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'postProcessingPosition':function _0x31e097(){var _0x3008bd=_0x4590a0;return _0xfada1['particlesTextures'][_0x3008bd(0x143)];},'nextParticlesSpeed':function _0xf2e2f2(){var _0x36de6e=_0x4590a0;return _0xfada1[_0x36de6e(0x125)]['nextParticlesSpeed'];}},'fragmentShaderSource':new Cesium$3[(_0x4590a0(0x9c))]({'sources':[postProcessingSpeed_frag]}),'outputTexture':this['particlesTextures'][_0x4590a0(0x175)],'preExecute':function _0x47d204(){var _0x15d795=_0x4590a0;_0xfada1['primitives']['postProcessingSpeed'][_0x15d795(0x102)][_0x15d795(0x11c)]=_0xfada1['particlesTextures'][_0x15d795(0x175)];}})};}}]),_0xe66580;}()),Cesium$2=mars3d__namespace[_0x25db9a(0x165)],ParticleSystem=(function(){var _0x28e4f0=_0x25db9a;function _0x504563(_0xc85642,_0x566740,_0x4b1289,_0xf44169){var _0x1908d2=_0x4750;_classCallCheck(this,_0x504563),this['context']=_0xc85642,_0x566740=_objectSpread2({},_0x566740);if(_0x566740['udata']&&_0x566740[_0x1908d2(0xe3)]){var _0x439ac9,_0x54f62c,_0x2c4c65,_0x104e80,_0x5b2350,_0x412eb2;_0x566740['dimensions']={},_0x566740[_0x1908d2(0xf5)]['lon']=_0x566740['cols'],_0x566740['dimensions'][_0x1908d2(0xd9)]=_0x566740['rows'],_0x566740['dimensions']['lev']=_0x566740['lev']||0x1,_0x566740['lon']={},_0x566740['lon']['min']=_0x566740[_0x1908d2(0xd6)],_0x566740['lon']['max']=_0x566740[_0x1908d2(0x132)],_0x566740['lat']={},_0x566740['lat']['min']=_0x566740['ymin'],_0x566740['lat']['max']=_0x566740['ymax'],_0x566740[_0x1908d2(0xb0)]={},_0x566740['lev']['min']=(_0x439ac9=_0x566740['levmin'])!==null&&_0x439ac9!==void 0x0?_0x439ac9:0x1,_0x566740[_0x1908d2(0xb0)]['max']=(_0x54f62c=_0x566740['levmax'])!==null&&_0x54f62c!==void 0x0?_0x54f62c:0x1,_0x566740['U']={},_0x566740['U'][_0x1908d2(0xf7)]=new Float32Array(_0x566740['udata']),_0x566740['U']['min']=(_0x2c4c65=_0x566740[_0x1908d2(0xb5)])!==null&&_0x2c4c65!==void 0x0?_0x2c4c65:Math[_0x1908d2(0x155)][_0x1908d2(0x120)](Math,_toConsumableArray(_0x566740['udata'])),_0x566740['U'][_0x1908d2(0x115)]=(_0x104e80=_0x566740['umax'])!==null&&_0x104e80!==void 0x0?_0x104e80:Math[_0x1908d2(0x115)]['apply'](Math,_toConsumableArray(_0x566740['udata'])),_0x566740['V']={},_0x566740['V'][_0x1908d2(0xf7)]=new Float32Array(_0x566740[_0x1908d2(0xe3)]),_0x566740['V']['min']=(_0x5b2350=_0x566740['vmin'])!==null&&_0x5b2350!==void 0x0?_0x5b2350:Math['min'][_0x1908d2(0x120)](Math,_toConsumableArray(_0x566740['vdata'])),_0x566740['V']['max']=(_0x412eb2=_0x566740[_0x1908d2(0x92)])!==null&&_0x412eb2!==void 0x0?_0x412eb2:Math['max'][_0x1908d2(0x120)](Math,_toConsumableArray(_0x566740[_0x1908d2(0xe3)]));}this['data']=_0x566740,this['options']=_0x4b1289,this['viewerParameters']=_0xf44169,this['particlesComputing']=new ParticlesComputing(this['context'],this['data'],this['options'],this['viewerParameters']),this['particlesRendering']=new ParticlesRendering(this['context'],this[_0x1908d2(0xad)],this['options'],this['viewerParameters'],this[_0x1908d2(0xec)]);}return _createClass(_0x504563,[{'key':'canvasResize','value':function _0x2ac0e9(_0x3a1c0a){var _0xb1db5e=_0x4750,_0xc6eef1=this;this[_0xb1db5e(0xec)][_0xb1db5e(0xb4)](),Object['keys'](this[_0xb1db5e(0xec)]['windTextures'])['forEach'](function(_0x281445){var _0x11c1c6=_0xb1db5e;_0xc6eef1['particlesComputing']['windTextures'][_0x281445][_0x11c1c6(0xa7)]();}),this[_0xb1db5e(0x95)]['textures']['colorTable']['destroy'](),Object['keys'](this[_0xb1db5e(0x95)]['framebuffers'])['forEach'](function(_0x1cc86e){_0xc6eef1['particlesRendering']['framebuffers'][_0x1cc86e]['destroy']();}),this['context']=_0x3a1c0a,this['particlesComputing']=new ParticlesComputing(this['context'],this[_0xb1db5e(0xad)],this['options'],this['viewerParameters']),this[_0xb1db5e(0x95)]=new ParticlesRendering(this[_0xb1db5e(0xa6)],this['data'],this['options'],this[_0xb1db5e(0x140)],this[_0xb1db5e(0xec)]);}},{'key':_0x28e4f0(0xf2),'value':function _0x550e38(){var _0x551a4b=this,_0x5d1765=new Cesium$2['ClearCommand']({'color':new Cesium$2['Color'](0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Cesium$2['Pass']['OPAQUE']});Object['keys'](this['particlesRendering']['framebuffers'])['forEach'](function(_0x5629e8){var _0x43912f=_0x4750;_0x5d1765[_0x43912f(0x9d)]=_0x551a4b['particlesRendering'][_0x43912f(0x124)][_0x5629e8],_0x5d1765['execute'](_0x551a4b['context']);});}},{'key':_0x28e4f0(0xd3),'value':function _0xbcda93(_0x1f44ce){var _0x25520c=_0x28e4f0;this['clearFramebuffers'](),this['particlesComputing'][_0x25520c(0xb4)](),this[_0x25520c(0xec)]['createParticlesTextures'](this['context'],this['options'],this['viewerParameters']);if(_0x1f44ce){var _0x3c016f=this[_0x25520c(0x95)][_0x25520c(0xe5)](this['options']);this[_0x25520c(0x95)]['primitives']['segments']['geometry']=_0x3c016f;var _0x555b48=Cesium$2['VertexArray'][_0x25520c(0x159)]({'context':this[_0x25520c(0xa6)],'geometry':_0x3c016f,'attributeLocations':this[_0x25520c(0x95)][_0x25520c(0xa1)]['segments']['attributeLocations'],'bufferUsage':Cesium$2['BufferUsage'][_0x25520c(0xf3)]});this['particlesRendering'][_0x25520c(0xa1)]['segments']['commandToExecute']['vertexArray']=_0x555b48;}}},{'key':'setOptions','value':function _0x320243(_0x5cb988){var _0x464386=_0x28e4f0,_0x1b72f4=this,_0x18922b=![];this['options'][_0x464386(0x176)]!==_0x5cb988['maxParticles']&&(_0x18922b=!![]),Object['keys'](_0x5cb988)['forEach'](function(_0x56dd54){_0x1b72f4['options'][_0x56dd54]=_0x5cb988[_0x56dd54];}),this[_0x464386(0xd3)](_0x18922b);}},{'key':'applyViewerParameters','value':function _0x2a46b3(_0x15b721){var _0x5bfd04=_0x28e4f0,_0x544c78=this;Object['keys'](_0x15b721)[_0x5bfd04(0xdd)](function(_0x567526){var _0x5d4cdb=_0x5bfd04;_0x544c78[_0x5d4cdb(0x140)][_0x567526]=_0x15b721[_0x567526];}),this['refreshParticles'](![]);}},{'key':'destroy','value':function _0x516e5a(){var _0x58a0ac=_0x28e4f0,_0x44ff07=this;clearTimeout(this['canrefresh']),this['particlesComputing'][_0x58a0ac(0xb4)](),Object[_0x58a0ac(0xee)](this['particlesComputing']['windTextures'])[_0x58a0ac(0xdd)](function(_0x582830){var _0x2bace4=_0x58a0ac;_0x44ff07['particlesComputing'][_0x2bace4(0xdf)][_0x582830][_0x2bace4(0xa7)]();}),this['particlesRendering']['textures'][_0x58a0ac(0xdc)]['destroy'](),Object[_0x58a0ac(0xee)](this['particlesRendering']['framebuffers'])['forEach'](function(_0x4d8b1a){var _0x120258=_0x58a0ac;_0x44ff07[_0x120258(0x95)]['framebuffers'][_0x4d8b1a][_0x120258(0xa7)]();});for(var _0x254ec8 in this){delete this[_0x254ec8];}}}]),_0x504563;}()),Cesium$1=mars3d__namespace['Cesium'],BaseLayer$1=mars3d__namespace[_0x25db9a(0xa8)]['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(_0x148948){var _0x4626f0=_0x25db9a;_inherits(_0x13d157,_0x148948);var _0x44624e=_createSuper(_0x13d157);function _0x13d157(){var _0x599b21,_0x1692f1=arguments['length']>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};return _classCallCheck(this,_0x13d157),_0x1692f1=_objectSpread2(_objectSpread2({},DEF_OPTIONS),_0x1692f1),_0x599b21=_0x44624e['call'](this,_0x1692f1),_0x599b21['_setOptionsHook'](_0x1692f1),_0x599b21;}return _createClass(_0x13d157,[{'key':'layer','get':function _0x46995d(){return this['primitives'];}},{'key':'data','get':function _0x4000e4(){return this['_data'];},'set':function _0x2f6785(_0x47fb82){this['setData'](_0x47fb82);}},{'key':'colors','get':function _0x3f82ac(){return this['options']['colors'];},'set':function _0x4f9f61(_0x389248){var _0x3d9a1d=_0x4750;this['options']['colors']=_0x389248,this[_0x3d9a1d(0xa3)]&&this['particleSystem']['setOptions']({'colors':_0x389248}),this[_0x3d9a1d(0xae)]();}},{'key':'_mountedHook','value':function _0x24f8b6(){}},{'key':_0x4626f0(0x15c),'value':function _0x1c5d7e(){var _0x222b13=_0x4626f0;this['scene']=this[_0x222b13(0xc0)]['scene'],this['camera']=this['_map'][_0x222b13(0x141)],this['primitives']=new Cesium$1['PrimitiveCollection'](),this[_0x222b13(0xc0)][_0x222b13(0x157)]['primitives']['add'](this['primitives']),this['viewerParameters']={'lonRange':new Cesium$1[(_0x222b13(0x10d))](),'latRange':new Cesium$1['Cartesian2'](),'pixelSize':0x0},this['globeBoundingSphere']=new Cesium$1[(_0x222b13(0x136))](Cesium$1[_0x222b13(0xfa)]['ZERO'],0.99*0x615299),this[_0x222b13(0x14e)](),window['addEventListener'](_0x222b13(0xae),this['resize'][_0x222b13(0x144)](this),![]),this[_0x222b13(0x154)]=![],this[_0x222b13(0xa9)]=![],this[_0x222b13(0xc0)]['on'](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this),this[_0x222b13(0xc0)]['on'](mars3d__namespace['EventType'][_0x222b13(0xbc)],this['_onMouseDownEvent'],this),this['_map']['on'](mars3d__namespace['EventType'][_0x222b13(0x14b)],this[_0x222b13(0x156)],this),this['_map']['on'](mars3d__namespace[_0x222b13(0x171)]['mouseMove'],this['_onMouseMoveEvent'],this),this[_0x222b13(0xbb)]&&this['setData'](this[_0x222b13(0xbb)]);}},{'key':'_removedHook','value':function _0x1bdb47(){var _0x27404b=_0x4626f0;window['removeEventListener']('resize',this['resize']),this[_0x27404b(0xc0)]['off'](mars3d__namespace['EventType']['preRender'],this['_onMap_preRenderEvent'],this),this['_map'][_0x27404b(0xfd)](mars3d__namespace['EventType']['wheel'],this[_0x27404b(0xd8)],this),this[_0x27404b(0xc0)][_0x27404b(0xfd)](mars3d__namespace['EventType']['mouseDown'],this['_onMouseDownEvent'],this),this[_0x27404b(0xc0)][_0x27404b(0xfd)](mars3d__namespace['EventType']['mouseUp'],this[_0x27404b(0x156)],this),this[_0x27404b(0xc0)][_0x27404b(0xfd)](mars3d__namespace[_0x27404b(0x171)][_0x27404b(0x9e)],this['_onMouseMoveEvent'],this),this['primitives']['removeAll'](),this['_map']['scene']['primitives'][_0x27404b(0x118)](this[_0x27404b(0xa1)]);}},{'key':'resize','value':function _0x417dc6(){var _0x22fb53=_0x4626f0;if(!this[_0x22fb53(0x109)]||!this['particleSystem'])return;this['primitives'][_0x22fb53(0x109)]=![],this[_0x22fb53(0xa1)][_0x22fb53(0x12d)](),this[_0x22fb53(0xc0)]['once'](mars3d__namespace['EventType']['preRender'],this['_onMap_preRenderEvent'],this);}},{'key':_0x4626f0(0x8a),'value':function _0xc8e0fd(_0x58bb2d){var _0x31ea03=_0x4626f0;this['particleSystem']['canvasResize'](this['scene']['context']),this['addPrimitives'](),this[_0x31ea03(0xa1)]['show']=!![];}},{'key':'_onMapWhellEvent','value':function _0x1ade04(_0x3932c9){var _0x46838d=this;clearTimeout(this['refreshTimer']);if(!this['show']||!this['particleSystem'])return;this['primitives']['show']=![],this['refreshTimer']=setTimeout(function(){var _0x184a05=_0x4750;if(!_0x46838d['show'])return;_0x46838d[_0x184a05(0xd7)]();},0xc8);}},{'key':'_onMouseDownEvent','value':function _0x140502(_0x49dba0){this['mouse_down']=!![];}},{'key':'_onMouseMoveEvent','value':function _0x4ff18c(_0x4066e8){var _0x35029b=_0x4626f0;if(!this['show']||!this[_0x35029b(0xa3)])return;this['mouse_down']&&(this['primitives'][_0x35029b(0x109)]=![],this['mouse_move']=!![]);}},{'key':'_onMouseUpEvent','value':function _0x2782fe(_0x2b7830){var _0xa66d6a=_0x4626f0;if(!this[_0xa66d6a(0x109)]||!this['particleSystem'])return;this['mouse_down']&&this[_0xa66d6a(0xa9)]&&this['redraw'](),this[_0xa66d6a(0xa1)][_0xa66d6a(0x109)]=!![],this['mouse_down']=![],this['mouse_move']=![];}},{'key':_0x4626f0(0xd7),'value':function _0xa8e2a5(){var _0x2c91d3=_0x4626f0;if(!this[_0x2c91d3(0xc0)]||!this['show'])return;this[_0x2c91d3(0x14e)](),this['particleSystem']['applyViewerParameters'](this['viewerParameters']),this[_0x2c91d3(0xa1)]['show']=!![];}},{'key':'setData','value':function _0x30b851(_0xd3f8f4){var _0x18472c=_0x4626f0;this['_data']=_0xd3f8f4,this['particleSystem']&&this[_0x18472c(0xa3)][_0x18472c(0xa7)](),this['particleSystem']=new ParticleSystem(this[_0x18472c(0x157)]['context'],_0xd3f8f4,this['getOptions'](),this['viewerParameters']),this[_0x18472c(0x153)]();}},{'key':'_setOptionsHook','value':function _0x4d48a7(_0x4fd359,_0x23c56b){if(_0x4fd359)for(var _0x44d671 in _0x4fd359){this[_0x44d671]=_0x4fd359[_0x44d671];}this['particleSystem']&&this['particleSystem']['setOptions'](this['getOptions']());}},{'key':_0x4626f0(0xba),'value':function _0x14f538(){var _0x1f234f=_0x4626f0,_0x169fc9=Math['ceil'](Math['sqrt'](this['particlesNumber']));return this['particlesNumber']=_0x169fc9*_0x169fc9,{'particlesTextureSize':_0x169fc9,'maxParticles':this[_0x1f234f(0x119)],'particleHeight':this[_0x1f234f(0x129)],'fadeOpacity':this['fadeOpacity'],'dropRate':this['dropRate'],'dropRateBump':this[_0x1f234f(0x116)],'speedFactor':this['speedFactor'],'lineWidth':this[_0x1f234f(0xb8)],'colors':this[_0x1f234f(0xe9)]};}},{'key':'addPrimitives','value':function _0x90e3cf(){var _0x95d7ca=_0x4626f0;this['primitives']['add'](this['particleSystem']['particlesComputing'][_0x95d7ca(0xa1)]['getWind']),this['primitives']['add'](this['particleSystem']['particlesComputing']['primitives'][_0x95d7ca(0x8b)]),this['primitives']['add'](this[_0x95d7ca(0xa3)]['particlesComputing'][_0x95d7ca(0xa1)][_0x95d7ca(0x10c)]),this['primitives']['add'](this['particleSystem']['particlesComputing'][_0x95d7ca(0xa1)]['postProcessingPosition']),this['primitives']['add'](this['particleSystem']['particlesComputing']['primitives']['postProcessingSpeed']),this['primitives']['add'](this['particleSystem']['particlesRendering']['primitives'][_0x95d7ca(0xcd)]),this[_0x95d7ca(0xa1)][_0x95d7ca(0xff)](this[_0x95d7ca(0xa3)][_0x95d7ca(0x95)]['primitives']['trails']),this[_0x95d7ca(0xa1)]['add'](this[_0x95d7ca(0xa3)]['particlesRendering']['primitives']['screen']);}},{'key':'updateViewerParameters','value':function _0x196c7e(){var _0x481587=_0x4626f0,_0x49e797=this[_0x481587(0x141)]['computeViewRectangle'](this['scene']['globe'][_0x481587(0x105)]);if(!_0x49e797){var _0x4f1e71=this['_map']['getExtent']();_0x49e797=Cesium$1['Rectangle']['fromDegrees'](_0x4f1e71[_0x481587(0xd6)],_0x4f1e71['ymin'],_0x4f1e71[_0x481587(0x132)],_0x4f1e71[_0x481587(0x16c)]);}var _0x2ed134=Util['viewRectangleToLonLatRange'](_0x49e797);this['viewerParameters']['lonRange']['x']=_0x2ed134['lon']['min'],this['viewerParameters']['lonRange']['y']=_0x2ed134['lon'][_0x481587(0x115)],this['viewerParameters'][_0x481587(0xab)]['x']=_0x2ed134['lat']['min'],this[_0x481587(0x140)]['latRange']['y']=_0x2ed134['lat']['max'];var _0x587440=this['camera'][_0x481587(0xb9)](this['globeBoundingSphere'],this[_0x481587(0x157)]['drawingBufferWidth'],this[_0x481587(0x157)]['drawingBufferHeight']);_0x587440>0x0&&(this[_0x481587(0x140)][_0x481587(0x10e)]=_0x587440);}}]),_0x13d157;}(BaseLayer$1);mars3d__namespace['LayerUtil']['register']('wind',WindLayer),mars3d__namespace['layer']['WindLayer']=WindLayer;var CanvasParticle=(function(){var _0x27b04c=_0x25db9a;function _0x2caa13(){_classCallCheck(this,_0x2caa13),this['lng']=null,this['lat']=null,this['tlng']=null,this['tlat']=null,this['age']=null;}return _createClass(_0x2caa13,[{'key':_0x27b04c(0xa7),'value':function _0x505113(){for(var _0x41ccd8 in this){delete this[_0x41ccd8];}}}]),_0x2caa13;}()),CanvasWindField=(function(){var _0x403f5f=_0x25db9a;function _0x29b510(_0x4e585c){_classCallCheck(this,_0x29b510),this['setOptions'](_0x4e585c);}return _createClass(_0x29b510,[{'key':_0x403f5f(0x10b),'get':function _0x4a9b9a(){var _0x1afd2c=_0x403f5f;return this[_0x1afd2c(0xf8)];},'set':function _0x234c01(_0x174de6){var _0x2cb8e1=_0x403f5f;this['_speedRate']=(0x64-(_0x174de6>0x63?0x63:_0x174de6))*0x64,this['_calc_speedRate']=[(this['xmax']-this['xmin'])/this[_0x2cb8e1(0xf8)],(this['ymax']-this['ymin'])/this[_0x2cb8e1(0xf8)]];}},{'key':'maxAge','get':function _0x36f326(){var _0x31fecc=_0x403f5f;return this[_0x31fecc(0x112)];},'set':function _0x51fbbb(_0x3ead31){var _0x7bf83d=_0x403f5f;this[_0x7bf83d(0x112)]=_0x3ead31;}},{'key':_0x403f5f(0x13a),'value':function _0x12f63f(_0x2c7e6f){var _0x299889=_0x403f5f;this['options']=_0x2c7e6f,this[_0x299889(0x142)]=_0x2c7e6f['maxAge']||0x78,this['speedRate']=_0x2c7e6f[_0x299889(0x10b)]||0x32,this[_0x299889(0xd2)]=[];var _0x2d1186=_0x2c7e6f['particlesNumber']||0x1000;for(var _0x51f415=0x0;_0x51f415<_0x2d1186;_0x51f415++){var _0x2aaae4=this['_randomParticle'](new CanvasParticle());this['particles'][_0x299889(0x8c)](_0x2aaae4);}}},{'key':'setDate','value':function _0x199731(_0xe9ca59){var _0x3aff10=_0x403f5f;this['rows']=_0xe9ca59[_0x3aff10(0xef)],this[_0x3aff10(0xc8)]=_0xe9ca59['cols'],this[_0x3aff10(0xd6)]=_0xe9ca59['xmin'],this['xmax']=_0xe9ca59[_0x3aff10(0x132)],this['ymin']=_0xe9ca59[_0x3aff10(0xb7)],this['ymax']=_0xe9ca59['ymax'],this['grid']=[];var _0x381e4d=_0xe9ca59['udata'],_0x397073=_0xe9ca59['vdata'],_0x18a044=![];_0x381e4d[_0x3aff10(0x93)]===this[_0x3aff10(0xef)]&&_0x381e4d[0x0]['length']===this[_0x3aff10(0xc8)]&&(_0x18a044=!![]);var _0x4f82c9=0x0,_0x1895be=null,_0x5a7625=null;for(var _0x3355ba=0x0;_0x3355ba<this['rows'];_0x3355ba++){_0x1895be=[];for(var _0x49778e=0x0;_0x49778e<this[_0x3aff10(0xc8)];_0x49778e++,_0x4f82c9++){_0x18a044?_0x5a7625=this['_calcUV'](_0x381e4d[_0x3355ba][_0x49778e],_0x397073[_0x3355ba][_0x49778e]):_0x5a7625=this['_calcUV'](_0x381e4d[_0x4f82c9],_0x397073[_0x4f82c9]),_0x1895be['push'](_0x5a7625);}this['grid']['push'](_0x1895be);}this['options'][_0x3aff10(0x149)]&&this[_0x3aff10(0x13e)]['reverse']();}},{'key':_0x403f5f(0x98),'value':function _0x16bf41(){var _0x5d7e4e=_0x403f5f;delete this['rows'],delete this[_0x5d7e4e(0xc8)],delete this['xmin'],delete this[_0x5d7e4e(0x132)],delete this['ymin'],delete this['ymax'],delete this['grid'],delete this['particles'];}},{'key':'toGridXY','value':function _0x587544(_0x27835a,_0x3cfcae){var _0x40a192=_0x403f5f,_0x3956ee=(_0x27835a-this['xmin'])/(this['xmax']-this['xmin'])*(this['cols']-0x1),_0x8b62d1=(this['ymax']-_0x3cfcae)/(this[_0x40a192(0x16c)]-this['ymin'])*(this['rows']-0x1);return[_0x3956ee,_0x8b62d1];}},{'key':'getUVByXY','value':function _0x2a1ad6(_0x554d0c,_0x4cb9d7){var _0x18698a=_0x403f5f;if(_0x554d0c<0x0||_0x554d0c>=this['cols']||_0x4cb9d7>=this[_0x18698a(0xef)])return[0x0,0x0,0x0];var _0x4cd8b4=Math['floor'](_0x554d0c),_0x3a03dd=Math[_0x18698a(0xe1)](_0x4cb9d7);if(_0x4cd8b4===_0x554d0c&&_0x3a03dd===_0x4cb9d7)return this['grid'][_0x4cb9d7][_0x554d0c];var _0x4a41c4=_0x4cd8b4+0x1,_0x5657fb=_0x3a03dd+0x1,_0x521191=this['getUVByXY'](_0x4cd8b4,_0x3a03dd),_0x404b86=this['getUVByXY'](_0x4a41c4,_0x3a03dd),_0x7b62cb=this['getUVByXY'](_0x4cd8b4,_0x5657fb),_0x5346de=this['getUVByXY'](_0x4a41c4,_0x5657fb),_0xc5c840=null;try{_0xc5c840=this['_bilinearInterpolation'](_0x554d0c-_0x4cd8b4,_0x4cb9d7-_0x3a03dd,_0x521191,_0x404b86,_0x7b62cb,_0x5346de);}catch(_0x196b2a){console[_0x18698a(0x14c)](_0x554d0c,_0x4cb9d7);}return _0xc5c840;}},{'key':'_bilinearInterpolation','value':function _0x1fe2d7(_0x29ad91,_0x421302,_0xea7e38,_0x584409,_0x1fa4f2,_0x38a2c1){var _0x3abbdd=_0x403f5f,_0x2a9a59=0x1-_0x29ad91,_0x1b7cb9=0x1-_0x421302,_0x2cdfc4=_0x2a9a59*_0x1b7cb9,_0x13e616=_0x29ad91*_0x1b7cb9,_0x45c7f4=_0x2a9a59*_0x421302,_0x1f4637=_0x29ad91*_0x421302,_0x455f20=_0xea7e38[0x0]*_0x2cdfc4+_0x584409[0x0]*_0x13e616+_0x1fa4f2[0x0]*_0x45c7f4+_0x38a2c1[0x0]*_0x1f4637,_0x4605dd=_0xea7e38[0x1]*_0x2cdfc4+_0x584409[0x1]*_0x13e616+_0x1fa4f2[0x1]*_0x45c7f4+_0x38a2c1[0x1]*_0x1f4637;return this[_0x3abbdd(0x151)](_0x455f20,_0x4605dd);}},{'key':_0x403f5f(0x151),'value':function _0x135987(_0x2f6bc6,_0x2ef633){return[+_0x2f6bc6,+_0x2ef633,Math['sqrt'](_0x2f6bc6*_0x2f6bc6+_0x2ef633*_0x2ef633)];}},{'key':_0x403f5f(0x15a),'value':function _0xbbf9d3(_0x5aa3f6,_0xd63b85){var _0x1fa0e3=_0x403f5f;if(!this['isInExtent'](_0x5aa3f6,_0xd63b85))return null;var _0x55da10=this['toGridXY'](_0x5aa3f6,_0xd63b85),_0x256753=this[_0x1fa0e3(0xa0)](_0x55da10[0x0],_0x55da10[0x1]);return _0x256753;}},{'key':_0x403f5f(0x11a),'value':function _0x2821ee(_0x27bb11,_0x2b0a43){var _0x5eace5=_0x403f5f;return _0x27bb11>=this[_0x5eace5(0xd6)]&&_0x27bb11<=this[_0x5eace5(0x132)]&&_0x2b0a43>=this['ymin']&&_0x2b0a43<=this['ymax']?!![]:![];}},{'key':_0x403f5f(0x9b),'value':function _0x3ac821(){var _0x5d0791=fRandomByfloat(this['xmin'],this['xmax']),_0x2df607=fRandomByfloat(this['ymin'],this['ymax']);return{'lat':_0x2df607,'lng':_0x5d0791};}},{'key':'getParticles','value':function _0x1fe5f1(){var _0x53fd62=_0x403f5f,_0x9a7906,_0x148d48,_0x2c65b8;for(var _0x493a40=0x0,_0x38483a=this[_0x53fd62(0xd2)]['length'];_0x493a40<_0x38483a;_0x493a40++){var _0x138f96=this['particles'][_0x493a40];_0x138f96[_0x53fd62(0x99)]<=0x0&&(_0x138f96=this['_randomParticle'](_0x138f96));if(_0x138f96['age']>0x0){var _0x46152b=_0x138f96['tlng'],_0x4867f1=_0x138f96['tlat'];_0x2c65b8=this['getUVByPoint'](_0x46152b,_0x4867f1),_0x2c65b8?(_0x9a7906=_0x46152b+this['_calc_speedRate'][0x0]*_0x2c65b8[0x0],_0x148d48=_0x4867f1+this['_calc_speedRate'][0x1]*_0x2c65b8[0x1],_0x138f96['lng']=_0x46152b,_0x138f96['lat']=_0x4867f1,_0x138f96[_0x53fd62(0x12c)]=_0x9a7906,_0x138f96[_0x53fd62(0x8d)]=_0x148d48,_0x138f96[_0x53fd62(0x99)]--):_0x138f96['age']=0x0;}}return this['particles'];}},{'key':'_randomParticle','value':function _0x27228c(_0x1e4f48){var _0x6f6be3=_0x403f5f,_0x300c7e,_0x121248;for(var _0x497d3b=0x0;_0x497d3b<0x1e;_0x497d3b++){_0x300c7e=this['getRandomLatLng'](),_0x121248=this[_0x6f6be3(0x15a)](_0x300c7e['lng'],_0x300c7e['lat']);if(_0x121248&&_0x121248[0x2]>0x0)break;}if(!_0x121248)return _0x1e4f48;var _0x265deb=_0x300c7e['lng']+this['_calc_speedRate'][0x0]*_0x121248[0x0],_0x386a28=_0x300c7e['lat']+this['_calc_speedRate'][0x1]*_0x121248[0x1];return _0x1e4f48['lng']=_0x300c7e['lng'],_0x1e4f48['lat']=_0x300c7e['lat'],_0x1e4f48['tlng']=_0x265deb,_0x1e4f48['tlat']=_0x386a28,_0x1e4f48['age']=Math[_0x6f6be3(0xc4)](Math[_0x6f6be3(0x130)]()*this['maxAge']),_0x1e4f48;}},{'key':'destroy','value':function _0x85a661(){for(var _0x4f02e9 in this){delete this[_0x4f02e9];}}}]),_0x29b510;}());function fRandomByfloat(_0xdf040e,_0x1ec8d7){return _0xdf040e+Math['random']()*(_0x1ec8d7-_0xdf040e);}var Cesium=mars3d__namespace['Cesium'],BaseLayer=mars3d__namespace['layer']['BaseLayer'],CanvasWindLayer=function(_0x4333cc){var _0x599a20=_0x25db9a;_inherits(_0x5a66db,_0x4333cc);var _0x57f55e=_createSuper(_0x5a66db);function _0x5a66db(){var _0x1818d2=_0x4750,_0x1838b4,_0xa48b9b=arguments[_0x1818d2(0x93)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};return _classCallCheck(this,_0x5a66db),_0x1838b4=_0x57f55e['call'](this,_0xa48b9b),_0x1838b4['_setOptionsHook'](_0xa48b9b),_0x1838b4['canvas']=null,_0x1838b4;}return _createClass(_0x5a66db,[{'key':_0x599a20(0x11e),'value':function _0x502843(_0x24fb56,_0x20f982){var _0x5b5a4e=_0x599a20,_0x36559f,_0x28c2a3,_0x41b59e;this['frameTime']=0x3e8/(_0x24fb56['frameRate']||0xa),this['_pointerEvents']=(_0x36559f=this['options']['pointerEvents'])!==null&&_0x36559f!==void 0x0?_0x36559f:![],this[_0x5b5a4e(0xda)]=_0x24fb56[_0x5b5a4e(0xda)]||'#ffffff',this['lineWidth']=_0x24fb56[_0x5b5a4e(0xb8)]||0x1,this['fixedHeight']=(_0x28c2a3=_0x24fb56['fixedHeight'])!==null&&_0x28c2a3!==void 0x0?_0x28c2a3:0x0,this['reverseY']=(_0x41b59e=_0x24fb56['reverseY'])!==null&&_0x41b59e!==void 0x0?_0x41b59e:![],this['windField']&&this[_0x5b5a4e(0xd4)][_0x5b5a4e(0x13a)](_0x24fb56);}},{'key':'layer','get':function _0x344657(){return this['canvas'];}},{'key':_0x599a20(0x166),'get':function _0x139fee(){var _0x21bb02=_0x599a20;return this['_map'][_0x21bb02(0x157)][_0x21bb02(0xe2)]['clientWidth'];}},{'key':'canvasHeight','get':function _0x283696(){var _0x1f7058=_0x599a20;return this['_map'][_0x1f7058(0x157)]['canvas'][_0x1f7058(0x110)];}},{'key':_0x599a20(0xed),'get':function _0x2b2a8b(){return this['_pointerEvents'];},'set':function _0x4b13ce(_0x356d6f){var _0x3f0125=_0x599a20;this[_0x3f0125(0x162)]=_0x356d6f;if(!this[_0x3f0125(0xe2)])return;_0x356d6f?this[_0x3f0125(0xe2)]['style']['pointer-events']='all':this['canvas'][_0x3f0125(0xca)]['pointer-events']='none';}},{'key':'particlesNumber','get':function _0x4bf606(){return this['options']['particlesNumber'];},'set':function _0x368f1e(_0x322898){var _0x12eee8=this;this['options']['particlesNumber']=_0x322898,clearTimeout(this['_canrefresh']),this['_canrefresh']=setTimeout(function(){_0x12eee8['redraw']();},0x1f4);}},{'key':'speedRate','get':function _0x454ad8(){var _0x27ea6c=_0x599a20;return this[_0x27ea6c(0x97)]['speedRate'];},'set':function _0x2fe8b0(_0x4dca58){var _0x31d60b=_0x599a20;this[_0x31d60b(0x97)]['speedRate']=_0x4dca58,this['windField']&&(this['windField']['speedRate']=_0x4dca58);}},{'key':'maxAge','get':function _0x36a0b4(){return this['options']['maxAge'];},'set':function _0x30c50c(_0xea7c67){var _0x17d0a7=_0x599a20;this['options']['maxAge']=_0xea7c67,this['windField']&&(this[_0x17d0a7(0xd4)]['maxAge']=_0xea7c67);}},{'key':'data','get':function _0x3bc44b(){return this['windData'];},'set':function _0x3b3fbc(_0x120dad){this['setData'](_0x120dad);}},{'key':'_showHook','value':function _0x470436(_0x4bcd43){var _0x51f2ad=_0x599a20;_0x4bcd43?this['_addedHook']():(this[_0x51f2ad(0x172)]&&(this['options']['data']=this[_0x51f2ad(0x172)]),this['_removedHook']());}},{'key':'_mountedHook','value':function _0x485d9(){var _0x4eca50=_0x599a20;this[_0x4eca50(0x97)]['worker']?this['initWorker']():this['windField']=new CanvasWindField(this['options']);}},{'key':'_addedHook','value':function _0x1f50b1(){var _0x184825=_0x599a20;this['canvas']=this[_0x184825(0x135)](),this['canvasContext']=this[_0x184825(0xe2)]['getContext']('2d',{'willReadFrequently':!![]}),this['bindEvent'](),this['options'][_0x184825(0xad)]&&this['setData'](this['options']['data']);}},{'key':'_removedHook','value':function _0x10020f(){var _0x35b4bb=_0x599a20;this[_0x35b4bb(0x98)](),this['unbindEvent'](),this[_0x35b4bb(0xe2)]&&(this['_map']['container']['removeChild'](this['canvas']),delete this['canvas']);}},{'key':'_createCanvas','value':function _0x316f11(){var _0x31eb63=_0x599a20,_0x3c3af5=document['createElement'](_0x31eb63(0xe2));_0x3c3af5['style']['position']='absolute',_0x3c3af5['style']['top']='0px',_0x3c3af5[_0x31eb63(0xca)]['left']=_0x31eb63(0x14a),_0x3c3af5['style']['width']='100%',_0x3c3af5['style']['height']=_0x31eb63(0xaf),_0x3c3af5['style'][_0x31eb63(0xed)]=this['_pointerEvents']?'auto':'none',_0x3c3af5['style']['zIndex']=0xa,_0x3c3af5[_0x31eb63(0x13c)]('id','canvasWindy'),_0x3c3af5['setAttribute']('class','canvasWindy'),this[_0x31eb63(0xc0)]['container'][_0x31eb63(0x138)](_0x3c3af5);var _0x4a01e8=this[_0x31eb63(0xc0)]['scene'];return _0x3c3af5['width']=_0x4a01e8['canvas']['clientWidth'],_0x3c3af5['height']=_0x4a01e8['canvas'][_0x31eb63(0x110)],_0x3c3af5;}},{'key':'resize','value':function _0x1b0da2(){var _0x4f1b43=_0x599a20;this['canvas']&&(this['canvas']['width']=this['canvasWidth'],this[_0x4f1b43(0xe2)]['height']=this[_0x4f1b43(0xdb)]);}},{'key':_0x599a20(0x121),'value':function _0x499550(){var _0x52fa12=_0x599a20,_0x2f2ed3=this,_0x5328e0=Date['now']();(function _0x90bf4a(){_0x2f2ed3['animateFrame']=window['requestAnimationFrame'](_0x90bf4a);if(_0x2f2ed3['show']&&_0x2f2ed3['windField']){var _0x160281=Date['now'](),_0x27181e=_0x160281-_0x5328e0;_0x27181e>_0x2f2ed3['frameTime']&&(_0x5328e0=_0x160281-_0x27181e%_0x2f2ed3['frameTime'],_0x2f2ed3['update']());}}(),window['addEventListener'](_0x52fa12(0xae),this['resize'][_0x52fa12(0x144)](this),![]),this['mouse_down']=![],this['mouse_move']=![],this['options']['mouseHidden']&&(this[_0x52fa12(0xc0)]['on'](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this),this['_map']['on'](mars3d__namespace[_0x52fa12(0x171)]['mouseDown'],this['_onMouseDownEvent'],this),this['_map']['on'](mars3d__namespace['EventType']['mouseUp'],this['_onMouseUpEvent'],this)));}},{'key':'unbindEvent','value':function _0x87df3e(){var _0x46526d=_0x599a20;window['cancelAnimationFrame'](this['animateFrame']),delete this[_0x46526d(0x139)],window['removeEventListener']('resize',this['resize']),this[_0x46526d(0x97)]['mouseHidden']&&(this[_0x46526d(0xc0)]['off'](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this),this[_0x46526d(0xc0)]['off'](mars3d__namespace[_0x46526d(0x171)]['mouseDown'],this['_onMouseDownEvent'],this),this['_map'][_0x46526d(0xfd)](mars3d__namespace['EventType']['mouseUp'],this['_onMouseUpEvent'],this),this['_map']['off'](mars3d__namespace['EventType'][_0x46526d(0x9e)],this[_0x46526d(0x117)],this));}},{'key':_0x599a20(0xd8),'value':function _0x182ba1(_0x1211c2){var _0x3f2533=_0x599a20,_0x323c1c=this;clearTimeout(this['refreshTimer']);if(!this['show']||!this[_0x3f2533(0xe2)])return;this['canvas']['style']['visibility']='hidden',this['refreshTimer']=setTimeout(function(){var _0xc60897=_0x3f2533;if(!_0x323c1c['show'])return;_0x323c1c['redraw'](),_0x323c1c['canvas'][_0xc60897(0xca)]['visibility']='visible';},0xc8);}},{'key':_0x599a20(0x15f),'value':function _0xede8f9(_0x47954a){var _0xb48169=_0x599a20;this[_0xb48169(0x154)]=!![],this['_map']['off'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this),this['_map']['on'](mars3d__namespace[_0xb48169(0x171)][_0xb48169(0x9e)],this['_onMouseMoveEvent'],this);}},{'key':_0x599a20(0x117),'value':function _0x5a66c6(_0x1a50d4){var _0x2c42fb=_0x599a20;if(!this['show']||!this[_0x2c42fb(0xe2)])return;this['mouse_down']&&(this[_0x2c42fb(0xe2)]['style'][_0x2c42fb(0x100)]=_0x2c42fb(0x13d),this['mouse_move']=!![]);}},{'key':'_onMouseUpEvent','value':function _0x588180(_0x1afa36){var _0x317097=_0x599a20;if(!this['show']||!this['canvas'])return;this['_map'][_0x317097(0xfd)](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this),this['mouse_down']&&this['mouse_move']&&this['redraw'](),this['canvas']['style']['visibility']=_0x317097(0xb2),this[_0x317097(0x154)]=![],this[_0x317097(0xa9)]=![];}},{'key':'setData','value':function _0x1d3f70(_0x5f1c1c){var _0xa37f49=_0x599a20;this['clear'](),this['windData']=_0x5f1c1c,this['windField']['setDate'](_0x5f1c1c),this[_0xa37f49(0xd7)]();}},{'key':'redraw','value':function _0x282e6c(){if(!this['show'])return;this['windField']['setOptions'](this['options']),this['update']();}},{'key':'update','value':function _0x46e7dc(){var _0x5c6202=_0x599a20;if(this['_updateIng'])return;this['_updateIng']=!![];if(this['worker'])this[_0x5c6202(0xd4)][_0x5c6202(0x15d)]();else{var _0x285261=this['windField'][_0x5c6202(0x107)]();this['_drawLines'](_0x285261);}this['_updateIng']=![];}},{'key':_0x599a20(0x163),'value':function _0x1cc232(_0x582713){var _0x44cd95=_0x599a20;this[_0x44cd95(0x148)][_0x44cd95(0x96)]='destination-in',this['canvasContext'][_0x44cd95(0xfc)](0x0,0x0,this['canvasWidth'],this[_0x44cd95(0xdb)]),this[_0x44cd95(0x148)]['globalCompositeOperation']='lighter',this['canvasContext']['globalAlpha']=0.9,this['canvasContext'][_0x44cd95(0x16d)](),this['canvasContext'][_0x44cd95(0xb8)]=this['lineWidth'],this['canvasContext'][_0x44cd95(0x85)]=this[_0x44cd95(0xda)];var _0x7a9f40=this[_0x44cd95(0xc0)]['scene']['mode']!==Cesium['SceneMode']['SCENE3D'];for(var _0x5a6c8=0x0,_0x34fbef=_0x582713['length'];_0x5a6c8<_0x34fbef;_0x5a6c8++){var _0x25c1e2=_0x582713[_0x5a6c8],_0x42c26a=this['_tomap'](_0x25c1e2['lng'],_0x25c1e2['lat'],_0x25c1e2),_0x3aa87e=this['_tomap'](_0x25c1e2['tlng'],_0x25c1e2['tlat'],_0x25c1e2);if(!_0x42c26a||!_0x3aa87e)continue;if(_0x7a9f40&&Math['abs'](_0x42c26a[0x0]-_0x3aa87e[0x0])>=this[_0x44cd95(0x166)])continue;this[_0x44cd95(0x148)]['moveTo'](_0x42c26a[0x0],_0x42c26a[0x1]),this['canvasContext']['lineTo'](_0x3aa87e[0x0],_0x3aa87e[0x1]);}this[_0x44cd95(0x148)]['stroke']();}},{'key':'_tomap','value':function _0x3f1e47(_0x2102df,_0x4560f9,_0x55694d){var _0x1f7eca=_0x599a20,_0x13ad3=Cesium['Cartesian3']['fromDegrees'](_0x2102df,_0x4560f9,this[_0x1f7eca(0x129)]),_0x39dda0=this[_0x1f7eca(0xc0)]['scene'];if(_0x39dda0['mode']===Cesium['SceneMode']['SCENE3D']){var _0x13b407=new Cesium['EllipsoidalOccluder'](_0x39dda0['globe'][_0x1f7eca(0x105)],_0x39dda0[_0x1f7eca(0x141)][_0x1f7eca(0x12a)]),_0x2b618f=_0x13b407['isPointVisible'](_0x13ad3);if(!_0x2b618f)return _0x55694d['age']=0x0,null;}var _0x1756bc=Cesium['SceneTransforms']['wgs84ToWindowCoordinates'](this['_map']['scene'],_0x13ad3);return _0x1756bc?[_0x1756bc['x'],_0x1756bc['y']]:null;}},{'key':'clear','value':function _0x83d83(){this['windField']['clear'](),delete this['windData'];}},{'key':_0x599a20(0xaa),'value':function _0x59d7ff(){var _0x1ad9ed=_0x599a20,_0x419fcc=this;this[_0x1ad9ed(0x127)]=new Worker(this['options']['worker']),this['worker'][_0x1ad9ed(0xbe)]=function(_0x31f6c8){var _0xb1dbe5=_0x1ad9ed;_0x419fcc['_drawLines'](_0x31f6c8[_0xb1dbe5(0xad)]['particles']),_0x419fcc['_updateIng2']=![];},this[_0x1ad9ed(0xd4)]={'init':function _0xc49fe4(_0x478164){_0x419fcc['worker']['postMessage']({'type':'init','options':_0x478164});},'setOptions':function _0x3190b0(_0x40b2fa){var _0x55b392=_0x1ad9ed;_0x419fcc['worker'][_0x55b392(0x114)]({'type':'setOptions','options':_0x40b2fa});},'setDate':function _0x59fa0c(_0x2a4743){_0x419fcc['worker']['postMessage']({'type':'setDate','data':_0x2a4743});},'update':function _0x339bbc(){var _0x4c4f41=_0x1ad9ed;if(_0x419fcc['_updateIng2'])return;_0x419fcc['_updateIng2']=!![],_0x419fcc[_0x4c4f41(0x127)]['postMessage']({'type':'update'});},'clear':function _0x5b3805(){var _0x19ebcc=_0x1ad9ed;_0x419fcc[_0x19ebcc(0x127)][_0x19ebcc(0x114)]({'type':'clear'});}},this[_0x1ad9ed(0xd4)]['init'](this['options']);}}]),_0x5a66db;}(BaseLayer);mars3d__namespace['LayerUtil'][_0x25db9a(0x11b)]('canvasWind',CanvasWindLayer),mars3d__namespace['layer'][_0x25db9a(0x94)]=CanvasWindLayer,mars3d__namespace['CanvasWindField']=CanvasWindField,mars3d__namespace[_0x25db9a(0xc5)]=WindUtil,exports['CanvasWindField']=CanvasWindField,exports[_0x25db9a(0x94)]=CanvasWindLayer,exports['WindLayer']=WindLayer,exports[_0x25db9a(0xc5)]=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.18",
3
+ "version": "3.4.19",
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.18"
11
+ "mars3d": "~3.4.19"
12
12
  },
13
13
  "scripts": {
14
14
  "lint": "eslint ./src/**/*.{js,ts} --fix"