mars3d-wind 3.4.17 → 3.4.18

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.17
5
- * 编译日期:2022-12-12 19:47:46
4
+ * 版本信息:v3.4.18
5
+ * 编译日期:2022-12-19 13:26:23
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 _0x286424=_0xc0df;(function(_0x48143d,_0x3f116a){var _0x1a4a8d=_0xc0df,_0x2e10e9=_0x48143d();while(!![]){try{var _0x21fe8f=parseInt(_0x1a4a8d(0x244))/0x1*(parseInt(_0x1a4a8d(0x330))/0x2)+parseInt(_0x1a4a8d(0x338))/0x3+-parseInt(_0x1a4a8d(0x28a))/0x4*(parseInt(_0x1a4a8d(0x220))/0x5)+-parseInt(_0x1a4a8d(0x262))/0x6*(-parseInt(_0x1a4a8d(0x2e0))/0x7)+-parseInt(_0x1a4a8d(0x1fc))/0x8*(parseInt(_0x1a4a8d(0x275))/0x9)+-parseInt(_0x1a4a8d(0x26c))/0xa+parseInt(_0x1a4a8d(0x1e2))/0xb;if(_0x21fe8f===_0x3f116a)break;else _0x2e10e9['push'](_0x2e10e9['shift']());}catch(_0x4b58e1){_0x2e10e9['push'](_0x2e10e9['shift']());}}}(_0x3449,0x61e5d));function _interopNamespace(_0x31b0f3){var _0x30bc94=_0xc0df;if(_0x31b0f3&&_0x31b0f3[_0x30bc94(0x1d1)])return _0x31b0f3;var _0x110ee4=Object['create'](null);return _0x31b0f3&&Object[_0x30bc94(0x22d)](_0x31b0f3)[_0x30bc94(0x331)](function(_0x11d63b){var _0x23e4ed=_0x30bc94;if(_0x11d63b!==_0x23e4ed(0x31b)){var _0xf81974=Object[_0x23e4ed(0x2db)](_0x31b0f3,_0x11d63b);Object[_0x23e4ed(0x230)](_0x110ee4,_0x11d63b,_0xf81974[_0x23e4ed(0x250)]?_0xf81974:{'enumerable':!![],'get':function(){return _0x31b0f3[_0x11d63b];}});}}),_0x110ee4[_0x30bc94(0x31b)]=_0x31b0f3,_0x110ee4;}var mars3d__namespace=_interopNamespace(mars3d),Cesium$7=mars3d__namespace[_0x286424(0x2fc)];function getU(_0x5aa95a,_0x487520){var _0x226612=_0x286424,_0x310f5b=_0x5aa95a*Math[_0x226612(0x2bf)](Cesium$7['Math'][_0x226612(0x23c)](_0x487520));return _0x310f5b;}function getV(_0x4bf3b3,_0x3873aa){var _0x3946e2=_0x286424,_0x4ad07e=_0x4bf3b3*Math[_0x3946e2(0x289)](Cesium$7[_0x3946e2(0x293)][_0x3946e2(0x23c)](_0x3873aa));return _0x4ad07e;}function getSpeed(_0x415ba0,_0x2b1f95){var _0x58ef98=_0x286424,_0x257665=Math['sqrt'](Math[_0x58ef98(0x1f7)](_0x415ba0,0x2)+Math[_0x58ef98(0x1f7)](_0x2b1f95,0x2));return _0x257665;}function getDirection(_0x1b7e2d,_0x301cb1){var _0x54231e=_0x286424,_0xdd5c33=Cesium$7[_0x54231e(0x293)]['toDegrees'](Math[_0x54231e(0x2f2)](_0x301cb1,_0x1b7e2d));return _0xdd5c33+=_0xdd5c33<0x0?0x168:0x0,_0xdd5c33;}var WindUtil={'__proto__':null,'getU':getU,'getV':getV,'getSpeed':getSpeed,'getDirection':getDirection};function ownKeys(_0x9a1f4c,_0x448e6a){var _0x438689=_0x286424,_0x2455bb=Object[_0x438689(0x22d)](_0x9a1f4c);if(Object[_0x438689(0x24b)]){var _0x14fdcf=Object[_0x438689(0x24b)](_0x9a1f4c);_0x448e6a&&(_0x14fdcf=_0x14fdcf['filter'](function(_0x3baa75){return Object['getOwnPropertyDescriptor'](_0x9a1f4c,_0x3baa75)['enumerable'];})),_0x2455bb['push'][_0x438689(0x1eb)](_0x2455bb,_0x14fdcf);}return _0x2455bb;}function _objectSpread2(_0x19c5dc){var _0x521731=_0x286424;for(var _0x10068f=0x1;_0x10068f<arguments[_0x521731(0x319)];_0x10068f++){var _0x599ce7=null!=arguments[_0x10068f]?arguments[_0x10068f]:{};_0x10068f%0x2?ownKeys(Object(_0x599ce7),!0x0)[_0x521731(0x331)](function(_0x218e73){_defineProperty(_0x19c5dc,_0x218e73,_0x599ce7[_0x218e73]);}):Object[_0x521731(0x218)]?Object['defineProperties'](_0x19c5dc,Object[_0x521731(0x218)](_0x599ce7)):ownKeys(Object(_0x599ce7))[_0x521731(0x331)](function(_0x10e6f8){var _0x7139eb=_0x521731;Object['defineProperty'](_0x19c5dc,_0x10e6f8,Object[_0x7139eb(0x2db)](_0x599ce7,_0x10e6f8));});}return _0x19c5dc;}function _classCallCheck(_0xcb77ef,_0x38fa27){var _0x2f9e43=_0x286424;if(!(_0xcb77ef instanceof _0x38fa27))throw new TypeError(_0x2f9e43(0x335));}function _defineProperties(_0x80eae6,_0x3b6e33){var _0x3f87c6=_0x286424;for(var _0x5d3a01=0x0;_0x5d3a01<_0x3b6e33[_0x3f87c6(0x319)];_0x5d3a01++){var _0x3c67b4=_0x3b6e33[_0x5d3a01];_0x3c67b4['enumerable']=_0x3c67b4[_0x3f87c6(0x1f2)]||![],_0x3c67b4['configurable']=!![];if('value'in _0x3c67b4)_0x3c67b4['writable']=!![];Object[_0x3f87c6(0x230)](_0x80eae6,_0x3c67b4['key'],_0x3c67b4);}}function _createClass(_0x318dc9,_0x149e93,_0x708800){var _0x1fa8cc=_0x286424;if(_0x149e93)_defineProperties(_0x318dc9[_0x1fa8cc(0x1d0)],_0x149e93);if(_0x708800)_defineProperties(_0x318dc9,_0x708800);return Object[_0x1fa8cc(0x230)](_0x318dc9,'prototype',{'writable':![]}),_0x318dc9;}function _defineProperty(_0x26a23c,_0x4fc30d,_0x2c6045){return _0x4fc30d in _0x26a23c?Object['defineProperty'](_0x26a23c,_0x4fc30d,{'value':_0x2c6045,'enumerable':!![],'configurable':!![],'writable':!![]}):_0x26a23c[_0x4fc30d]=_0x2c6045,_0x26a23c;}function _inherits(_0xffacdd,_0x5e4d4e){var _0x5a6e8f=_0x286424;if(typeof _0x5e4d4e!==_0x5a6e8f(0x2d7)&&_0x5e4d4e!==null)throw new TypeError(_0x5a6e8f(0x30c));_0xffacdd['prototype']=Object[_0x5a6e8f(0x24d)](_0x5e4d4e&&_0x5e4d4e[_0x5a6e8f(0x1d0)],{'constructor':{'value':_0xffacdd,'writable':!![],'configurable':!![]}}),Object[_0x5a6e8f(0x230)](_0xffacdd,_0x5a6e8f(0x1d0),{'writable':![]});if(_0x5e4d4e)_setPrototypeOf(_0xffacdd,_0x5e4d4e);}function _0x3449(){var _0x2b863e=['Map','shaderProgram','lng','geometry','destination-in','initWorker','preRender','visibility','colors','resize','OPAQUE','RenderState','keys','age','Compute','defineProperty','requestAnimationFrame','from','fromDegrees','_showHook','ShaderSource','Rectangle','visible','grid','framebuffers','setAttribute','createCommand','toRadians','__proto__','outputTexture','rawRenderState','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}','segmentsColor','canvasHeight','vmax','2iCCmZt','clientWidth','umin','primitiveType','_bilinearInterpolation','FLOAT','createRenderingFramebuffers','getOwnPropertySymbols','pixelSize','create','lineWidth','Color','get','mod','speedFactor','clientHeight','mouseHidden','ALWAYS','_canrefresh','_onMouseUpEvent','_updateIng','positionWC','update','show','pointerEvents','_randomParticle','destroyParticlesTextures','removeEventListener','BaseLayer','toDegrees','594UTafjx','DISABLE_GL_POSITION_LOG_DEPTH','canrefresh','latRange','nextTrails','randomizeParticles','PI_OVER_THREE','segments','updatePosition','colorTable','7152380aQQIjt','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}','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}','addEventListener','TextureMinificationFilter','autoClear','Geometry','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}','_removedHook','45tdGcvG','frameRate','segmentsDepth','VertexArray','CanvasWindLayer','unbindEvent','_calc_speedRate','strokeStyle','tlat','canvasWidth','_drawLines','push','depthTest','GeometryAttribute','particlesTextures','dropRateBump','mouseMove','auto','style','setGeometry','sin','12MMSdSp','windTextures','scene','wind','ymax','ComponentDatatype','setDate','currentParticlesSpeed','getFullscreenQuad','Math','fromCssColorString','container','removeAll','abs','ClearCommand','LayerUtil','addPrimitives','lonRange','GeometryAttributes','PrimitiveType','createSegmentsGeometry','globalAlpha','clearFramebuffers','mouseUp','levmin','mouseDown','valueOf','THREE_PI_OVER_TWO','this\x20hasn\x27t\x20been\x20initialised\x20-\x20super()\x20hasn\x27t\x20been\x20called','getUVByPoint','createParticlesTextures','none','constructor','getColorTexture','nextParticlesPosition','viewerParameters','Pass','CanvasWindField','canvasWindy','cols','wheel','destroyObject','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}','udata','hidden','RGBA','Cartesian3','dropRate','TextureMagnificationFilter','setOptions','mouse_down','depthMask','EventType','cos','refreshParticles','Arguments','getUVByXY','canvas','Cartesian2','SceneMode','ShaderProgram','clear','call','sqrt','init','windData','east','object','Appearance','isDestroyed','layer','postProcessingSpeed','STATIC_DRAW','color','levmax','uniformMap','particleSystem','function','lighter','left','drawingBufferHeight','getOwnPropertyDescriptor','globeBoundingSphere','height','rows','canvasResize','19803bEfxoh','getRandomLatLng','ZERO','refreshTimer','lon','createTexture','sham','setData','windField','currentTrailsColor','rgb(206,255,255)','isArray','currentTrails','Invalid\x20attempt\x20to\x20spread\x20non-iterable\x20instance.\x0aIn\x20order\x20to\x20be\x20iterable,\x20non-array\x20objects\x20must\x20have\x20a\x20[Symbol.iterator]()\x20method.','ymin','destroy','IDENTITY','preExecute','atan2','redraw','undefined','_speedRate','beginPath','0px','SCENE3D','south','postMessage','computeViewRectangle','Cesium','Object','maxParticles','BufferUsage','currentTrailsDepth','viewRectangleToLonLatRange','attributeLocations','particlesNumber','onmessage','createRenderingTextures','name','_addedHook','maxAge','Sampler','_setOptionsHook','globe','Super\x20expression\x20must\x20either\x20be\x20null\x20or\x20a\x20function','UNSIGNED_INT','appendChild','randomBetween','textures','UNSIGNED_BYTE','applyViewerParameters','fragmentShaderSource','createRawRenderState','bindEvent','context','getExtent','dimensions','length','lat','default','animateFrame','mouse_move','_tomap','_data','clearCommand','particlesWind','createComputingPrimitives','commandList','PixelFormat','currentParticlesPosition','isInExtent','vertexArray','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}','tlng','pointer-events','width','viewport','framebuffer','position','ComputeCommand','186106nCmkDz','forEach','add','@@iterator','RGB','Cannot\x20call\x20a\x20class\x20as\x20a\x20function','removeChild','lev','876693eincTA','screen','floor','nextParticlesSpeed','getPixelSize','#ffffff','_map','NEAREST','getPrototypeOf','clampToLatitudeRange','PixelDatatype','commandType','Matrix4','particlesRendering','depthTexture','string','_createCanvas','PI_OVER_TWO','array','blue','drawingBufferWidth','xmin','prototype','__esModule','vertexShaderSource','primitives','_onMouseDownEvent','createRenderingPrimitives','xmax','umax','max','fromCache','worker','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}','_maxAge','ellipsoid','isPointVisible','options','toString','mode','12288694zkfYhP','DEPTH_COMPONENT','createElement','_calcUV','_onMouseMoveEvent','DISABLE_LOG_DEPTH_FRAGMENT_WRITE','DrawCommand','_pointerEvents','EllipsoidalOccluder','apply','remove','updateSpeed','data','canvasContext','getWind','frameTime','enumerable','trails','getOptions','now','_onMapWhellEvent','pow','TWO_PI','LINEAR','class','_updateIng2','772904vpRebJ','createFramebuffer','construct','updateViewerParameters','TRIANGLES','defined','bind','particles','getParticles','postProcessingPosition','_onMap_preRenderEvent','min','setPrototypeOf','blending','log','SceneTransforms','Draw','register','zIndex','particlesTextureSize','commandToExecute','off','camera','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}','random','speedRate','LUMINANCE','absolute','getOwnPropertyDescriptors','vdata','WindUtil','particlesComputing','reverseY','all','fromGeometry','fixedHeight','460450nZuszd'];_0x3449=function(){return _0x2b863e;};return _0x3449();}function _getPrototypeOf(_0x3bbee0){var _0x3a47e2=_0x286424;return _getPrototypeOf=Object['setPrototypeOf']?Object[_0x3a47e2(0x340)][_0x3a47e2(0x202)]():function _0x46c8ab(_0x5221ca){var _0x30e5f1=_0x3a47e2;return _0x5221ca['__proto__']||Object[_0x30e5f1(0x340)](_0x5221ca);},_getPrototypeOf(_0x3bbee0);}function _setPrototypeOf(_0x2a70ad,_0x2a06ee){var _0xa00bb2=_0x286424;return _setPrototypeOf=Object[_0xa00bb2(0x208)]?Object[_0xa00bb2(0x208)][_0xa00bb2(0x202)]():function _0x267b95(_0x167785,_0x3861a1){var _0x509a3e=_0xa00bb2;return _0x167785[_0x509a3e(0x23d)]=_0x3861a1,_0x167785;},_setPrototypeOf(_0x2a70ad,_0x2a06ee);}function _isNativeReflectConstruct(){var _0x46d0d3=_0x286424;if(typeof Reflect===_0x46d0d3(0x2f4)||!Reflect[_0x46d0d3(0x1fe)])return![];if(Reflect[_0x46d0d3(0x1fe)][_0x46d0d3(0x2e6)])return![];if(typeof Proxy===_0x46d0d3(0x2d7))return!![];try{return Boolean[_0x46d0d3(0x1d0)][_0x46d0d3(0x2a4)][_0x46d0d3(0x2c8)](Reflect[_0x46d0d3(0x1fe)](Boolean,[],function(){})),!![];}catch(_0x593552){return![];}}function _assertThisInitialized(_0x45326c){var _0x5ee92d=_0x286424;if(_0x45326c===void 0x0)throw new ReferenceError(_0x5ee92d(0x2a6));return _0x45326c;}function _possibleConstructorReturn(_0x3e5cee,_0x2025ff){var _0x398d60=_0x286424;if(_0x2025ff&&(typeof _0x2025ff===_0x398d60(0x2cd)||typeof _0x2025ff===_0x398d60(0x2d7)))return _0x2025ff;else{if(_0x2025ff!==void 0x0)throw new TypeError('Derived\x20constructors\x20may\x20only\x20return\x20object\x20or\x20undefined');}return _assertThisInitialized(_0x3e5cee);}function _createSuper(_0x174cea){var _0x55b687=_isNativeReflectConstruct();return function _0x5b26a1(){var _0x3c42ba=_0xc0df,_0x47e5af=_getPrototypeOf(_0x174cea),_0x365f79;if(_0x55b687){var _0x560301=_getPrototypeOf(this)[_0x3c42ba(0x2aa)];_0x365f79=Reflect[_0x3c42ba(0x1fe)](_0x47e5af,arguments,_0x560301);}else _0x365f79=_0x47e5af[_0x3c42ba(0x1eb)](this,arguments);return _possibleConstructorReturn(this,_0x365f79);};}function _toConsumableArray(_0xb69677){return _arrayWithoutHoles(_0xb69677)||_iterableToArray(_0xb69677)||_unsupportedIterableToArray(_0xb69677)||_nonIterableSpread();}function _arrayWithoutHoles(_0x1b6853){var _0x3adc60=_0x286424;if(Array[_0x3adc60(0x2eb)](_0x1b6853))return _arrayLikeToArray(_0x1b6853);}function _iterableToArray(_0x5c2129){var _0x450be3=_0x286424;if(typeof Symbol!==_0x450be3(0x2f4)&&_0x5c2129[Symbol['iterator']]!=null||_0x5c2129[_0x450be3(0x333)]!=null)return Array['from'](_0x5c2129);}function _unsupportedIterableToArray(_0x296cc2,_0x3ae738){var _0x18f07a=_0x286424;if(!_0x296cc2)return;if(typeof _0x296cc2===_0x18f07a(0x347))return _arrayLikeToArray(_0x296cc2,_0x3ae738);var _0x3e794c=Object[_0x18f07a(0x1d0)][_0x18f07a(0x1e0)][_0x18f07a(0x2c8)](_0x296cc2)['slice'](0x8,-0x1);if(_0x3e794c===_0x18f07a(0x2fd)&&_0x296cc2[_0x18f07a(0x2aa)])_0x3e794c=_0x296cc2[_0x18f07a(0x2aa)][_0x18f07a(0x306)];if(_0x3e794c===_0x18f07a(0x221)||_0x3e794c==='Set')return Array[_0x18f07a(0x232)](_0x296cc2);if(_0x3e794c===_0x18f07a(0x2c1)||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/['test'](_0x3e794c))return _arrayLikeToArray(_0x296cc2,_0x3ae738);}function _arrayLikeToArray(_0x2740ea,_0x46bbfe){var _0x103fa9=_0x286424;if(_0x46bbfe==null||_0x46bbfe>_0x2740ea[_0x103fa9(0x319)])_0x46bbfe=_0x2740ea[_0x103fa9(0x319)];for(var _0x19617d=0x0,_0x143773=new Array(_0x46bbfe);_0x19617d<_0x46bbfe;_0x19617d++)_0x143773[_0x19617d]=_0x2740ea[_0x19617d];return _0x143773;}function _nonIterableSpread(){var _0x46cf7c=_0x286424;throw new TypeError(_0x46cf7c(0x2ed));}var Cesium$6=mars3d__namespace['Cesium'],CustomPrimitive=(function(){var _0x21d8be=_0x286424;function _0x428b76(_0x59084e){var _0x40f869=_0xc0df,_0x3e8ba5;_classCallCheck(this,_0x428b76),this[_0x40f869(0x343)]=_0x59084e[_0x40f869(0x343)],this[_0x40f869(0x224)]=_0x59084e[_0x40f869(0x224)],this[_0x40f869(0x302)]=_0x59084e[_0x40f869(0x302)],this[_0x40f869(0x247)]=_0x59084e[_0x40f869(0x247)],this[_0x40f869(0x2d5)]=_0x59084e[_0x40f869(0x2d5)],this[_0x40f869(0x1d2)]=_0x59084e['vertexShaderSource'],this[_0x40f869(0x313)]=_0x59084e[_0x40f869(0x313)],this[_0x40f869(0x23f)]=_0x59084e['rawRenderState'],this[_0x40f869(0x32d)]=_0x59084e[_0x40f869(0x32d)],this['outputTexture']=_0x59084e[_0x40f869(0x23e)],this[_0x40f869(0x271)]=(_0x3e8ba5=_0x59084e[_0x40f869(0x271)])!==null&&_0x3e8ba5!==void 0x0?_0x3e8ba5:![],this[_0x40f869(0x2f1)]=_0x59084e[_0x40f869(0x2f1)],this['show']=!![],this[_0x40f869(0x210)]=undefined,this['clearCommand']=undefined,this[_0x40f869(0x271)]&&(this[_0x40f869(0x320)]=new Cesium$6[(_0x40f869(0x298))]({'color':new Cesium$6[(_0x40f869(0x24f))](0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this[_0x40f869(0x32d)],'pass':Cesium$6[_0x40f869(0x2ae)][_0x40f869(0x22b)]}));}return _createClass(_0x428b76,[{'key':_0x21d8be(0x23b),'value':function _0x15ba7e(_0x63ea3d){var _0x1e5179=_0x21d8be;switch(this['commandType']){case _0x1e5179(0x20c):{var _0x16f41b=Cesium$6[_0x1e5179(0x278)]['fromGeometry']({'context':_0x63ea3d,'geometry':this[_0x1e5179(0x224)],'attributeLocations':this[_0x1e5179(0x302)],'bufferUsage':Cesium$6[_0x1e5179(0x2ff)]['STATIC_DRAW']}),_0x55baf6=Cesium$6[_0x1e5179(0x2c6)][_0x1e5179(0x1d9)]({'context':_0x63ea3d,'attributeLocations':this['attributeLocations'],'vertexShaderSource':this[_0x1e5179(0x1d2)],'fragmentShaderSource':this[_0x1e5179(0x313)]}),_0x30c0c6=Cesium$6[_0x1e5179(0x22c)]['fromCache'](this[_0x1e5179(0x23f)]);return new Cesium$6[(_0x1e5179(0x1e8))]({'primitiveType':this[_0x1e5179(0x247)],'shaderProgram':_0x55baf6,'vertexArray':_0x16f41b,'modelMatrix':Cesium$6[_0x1e5179(0x344)][_0x1e5179(0x2f0)],'renderState':_0x30c0c6,'uniformMap':this[_0x1e5179(0x2d5)],'castShadows':![],'receiveShadows':![],'framebuffer':this[_0x1e5179(0x32d)],'pass':Cesium$6[_0x1e5179(0x2ae)][_0x1e5179(0x22b)],'pickOnly':!![],'owner':this});}case'Compute':{return new Cesium$6[(_0x1e5179(0x32f))]({'owner':this,'fragmentShaderSource':this['fragmentShaderSource'],'uniformMap':this[_0x1e5179(0x2d5)],'outputTexture':this[_0x1e5179(0x23e)],'persists':!![]});}}}},{'key':_0x21d8be(0x288),'value':function _0x2a6f6a(_0x2d1674,_0x47fdb0){var _0x3ec105=_0x21d8be;this[_0x3ec105(0x224)]=_0x47fdb0;var _0xdb58d7=Cesium$6[_0x3ec105(0x278)]['fromGeometry']({'context':_0x2d1674,'geometry':this[_0x3ec105(0x224)],'attributeLocations':this[_0x3ec105(0x302)],'bufferUsage':Cesium$6[_0x3ec105(0x2ff)]['STATIC_DRAW']});this['commandToExecute'][_0x3ec105(0x327)]=_0xdb58d7;}},{'key':_0x21d8be(0x25a),'value':function _0x11e93a(_0x882ba5){var _0x5152b9=_0x21d8be;if(!this[_0x5152b9(0x25b)])return;if(_0x882ba5[_0x5152b9(0x1e1)]!==Cesium$6[_0x5152b9(0x2c5)][_0x5152b9(0x2f8)])return;!Cesium$6[_0x5152b9(0x201)](this[_0x5152b9(0x210)])&&(this[_0x5152b9(0x210)]=this[_0x5152b9(0x23b)](_0x882ba5[_0x5152b9(0x316)])),Cesium$6[_0x5152b9(0x201)](this[_0x5152b9(0x2f1)])&&this[_0x5152b9(0x2f1)](),Cesium$6['defined'](this['clearCommand'])&&_0x882ba5[_0x5152b9(0x323)][_0x5152b9(0x280)](this[_0x5152b9(0x320)]),_0x882ba5[_0x5152b9(0x323)]['push'](this[_0x5152b9(0x210)]);}},{'key':_0x21d8be(0x2cf),'value':function _0x21cf68(){return![];}},{'key':_0x21d8be(0x2ef),'value':function _0x136ea4(){var _0x202d5e=_0x21d8be;if(this[_0x202d5e(0x320)]){var _0x178a5e,_0x2ad518;(_0x178a5e=this['clearCommand'])!==null&&_0x178a5e!==void 0x0&&_0x178a5e[_0x202d5e(0x327)]&&this[_0x202d5e(0x320)]['vertexArray'][_0x202d5e(0x2ef)](),(_0x2ad518=this[_0x202d5e(0x320)])!==null&&_0x2ad518!==void 0x0&&_0x2ad518[_0x202d5e(0x222)]&&this[_0x202d5e(0x320)][_0x202d5e(0x222)][_0x202d5e(0x2ef)](),delete this['clearCommand'];}return this[_0x202d5e(0x210)]&&(this[_0x202d5e(0x210)][_0x202d5e(0x327)]&&this[_0x202d5e(0x210)]['vertexArray'][_0x202d5e(0x2ef)](),this['commandToExecute'][_0x202d5e(0x222)]&&this[_0x202d5e(0x210)][_0x202d5e(0x222)][_0x202d5e(0x2ef)](),delete this['commandToExecute']),Cesium$6[_0x202d5e(0x2b3)](this);}}]),_0x428b76;}()),Cesium$5=mars3d__namespace[_0x286424(0x2fc)],Util=(function(){var _0x540212=function _0x595d73(){var _0x21b722=_0xc0df,_0x92a018=new Cesium$5[(_0x21b722(0x272))]({'attributes':new Cesium$5[(_0x21b722(0x29c))]({'position':new Cesium$5['GeometryAttribute']({'componentDatatype':Cesium$5[_0x21b722(0x28f)][_0x21b722(0x249)],'componentsPerAttribute':0x3,'values':new Float32Array([-0x1,-0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0,-0x1,0x1,0x0])}),'st':new Cesium$5[(_0x21b722(0x282))]({'componentDatatype':Cesium$5['ComponentDatatype'][_0x21b722(0x249)],'componentsPerAttribute':0x2,'values':new Float32Array([0x0,0x0,0x1,0x0,0x1,0x1,0x0,0x1])})}),'indices':new Uint32Array([0x3,0x2,0x0,0x0,0x2,0x1])});return _0x92a018;},_0x4620e6=function _0x2ecba9(_0x4b3ccf,_0x4fe4a5){var _0x223ef5=_0xc0df;if(Cesium$5[_0x223ef5(0x201)](_0x4fe4a5)){var _0x3ae3a5={};_0x3ae3a5['arrayBufferView']=_0x4fe4a5,_0x4b3ccf['source']=_0x3ae3a5;}var _0x40c0dc=new Cesium$5['Texture'](_0x4b3ccf);return _0x40c0dc;},_0x287106=function _0x22d81c(_0x5371a2,_0x4d4e1b,_0x14dfde){var _0x56115b=new Cesium$5['Framebuffer']({'context':_0x5371a2,'colorTextures':[_0x4d4e1b],'depthTexture':_0x14dfde});return _0x56115b;},_0xf4b288=function _0x47f6cc(_0x48734f){var _0x3cf979=_0xc0df,_0x4483ed=!![],_0xaa00d8=![],_0x372968={'viewport':_0x48734f[_0x3cf979(0x32c)],'depthTest':_0x48734f[_0x3cf979(0x281)],'depthMask':_0x48734f[_0x3cf979(0x2bd)],'blending':_0x48734f[_0x3cf979(0x209)]},_0x637574=Cesium$5[_0x3cf979(0x2ce)]['getDefaultRenderState'](_0x4483ed,_0xaa00d8,_0x372968);return _0x637574;},_0x2c8895=function _0x26d2a1(_0x2b7021){var _0x319af2=_0xc0df,_0x508ae1={},_0x546e03=Cesium$5['Math'][_0x319af2(0x251)](_0x2b7021['west'],Cesium$5[_0x319af2(0x293)][_0x319af2(0x1f8)]),_0x256385=Cesium$5[_0x319af2(0x293)]['mod'](_0x2b7021[_0x319af2(0x2cc)],Cesium$5[_0x319af2(0x293)]['TWO_PI']),_0x152d0e=_0x2b7021[_0x319af2(0x32b)],_0x46eb53,_0x153718;_0x152d0e>Cesium$5[_0x319af2(0x293)][_0x319af2(0x2a5)]?(_0x46eb53=0x0,_0x153718=Cesium$5[_0x319af2(0x293)][_0x319af2(0x1f8)]):_0x256385-_0x546e03<_0x152d0e?(_0x46eb53=_0x546e03,_0x153718=_0x546e03+_0x152d0e):(_0x46eb53=_0x546e03,_0x153718=_0x256385);_0x508ae1['lon']={'min':Cesium$5['Math'][_0x319af2(0x261)](_0x46eb53),'max':Cesium$5['Math'][_0x319af2(0x261)](_0x153718)};var _0xdc4778=_0x2b7021[_0x319af2(0x2f9)],_0x32babe=_0x2b7021['north'],_0x412f24=_0x2b7021[_0x319af2(0x2dd)],_0x4780c8=_0x412f24>Cesium$5['Math']['PI']/0xc?_0x412f24/0x2:0x0,_0x2461a9=Cesium$5[_0x319af2(0x293)]['clampToLatitudeRange'](_0xdc4778-_0x4780c8),_0x3a0cfe=Cesium$5['Math'][_0x319af2(0x341)](_0x32babe+_0x4780c8);return _0x2461a9<-Cesium$5[_0x319af2(0x293)][_0x319af2(0x268)]&&(_0x2461a9=-Cesium$5[_0x319af2(0x293)][_0x319af2(0x349)]),_0x3a0cfe>Cesium$5[_0x319af2(0x293)][_0x319af2(0x268)]&&(_0x3a0cfe=Cesium$5[_0x319af2(0x293)][_0x319af2(0x349)]),_0x508ae1[_0x319af2(0x31a)]={'min':Cesium$5[_0x319af2(0x293)][_0x319af2(0x261)](_0x2461a9),'max':Cesium$5['Math'][_0x319af2(0x261)](_0x3a0cfe)},_0x508ae1;};return{'getFullscreenQuad':_0x540212,'createTexture':_0x4620e6,'createFramebuffer':_0x287106,'createRawRenderState':_0xf4b288,'viewRectangleToLonLatRange':_0x2c8895};}()),segmentDraw_vert=_0x286424(0x213),segmentDraw_frag=_0x286424(0x273),fullscreen_vert=_0x286424(0x2b4),trailDraw_frag=_0x286424(0x26e),screenDraw_frag=_0x286424(0x1db),Cesium$4=mars3d__namespace[_0x286424(0x2fc)],ParticlesRendering=(function(){var _0x229000=_0x286424;function _0x3a9991(_0xd765ba,_0x49c6e4,_0x90ea7d,_0x146c87,_0x16c8a8){var _0x44765e=_0xc0df;_classCallCheck(this,_0x3a9991),this[_0x44765e(0x305)](_0xd765ba,_0x49c6e4,_0x90ea7d[_0x44765e(0x229)]),this['createRenderingFramebuffers'](_0xd765ba),this['createRenderingPrimitives'](_0xd765ba,_0x90ea7d,_0x146c87,_0x16c8a8);}return _createClass(_0x3a9991,[{'key':_0x229000(0x305),'value':function _0x2a3023(_0x89269b,_0x1d10a2,_0xa290b9){var _0x4d8981=_0x229000,_0x2decd9={'context':_0x89269b,'width':_0x89269b[_0x4d8981(0x1ce)],'height':_0x89269b['drawingBufferHeight'],'pixelFormat':Cesium$4[_0x4d8981(0x324)][_0x4d8981(0x2b7)],'pixelDatatype':Cesium$4['PixelDatatype'][_0x4d8981(0x311)]},_0x29b4={'context':_0x89269b,'width':_0x89269b[_0x4d8981(0x1ce)],'height':_0x89269b['drawingBufferHeight'],'pixelFormat':Cesium$4[_0x4d8981(0x324)][_0x4d8981(0x1e3)],'pixelDatatype':Cesium$4[_0x4d8981(0x342)][_0x4d8981(0x30d)]},_0x1f15cb=_0xa290b9[_0x4d8981(0x319)],_0x42da96=new Float32Array(_0x1f15cb*0x3);for(var _0x470195=0x0;_0x470195<_0x1f15cb;_0x470195++){var _0x59e9bd=Cesium$4[_0x4d8981(0x24f)][_0x4d8981(0x294)](_0xa290b9[_0x470195]);_0x42da96[0x3*_0x470195]=_0x59e9bd['red'],_0x42da96[0x3*_0x470195+0x1]=_0x59e9bd['green'],_0x42da96[0x3*_0x470195+0x2]=_0x59e9bd[_0x4d8981(0x1cd)];}var _0xab7031={'context':_0x89269b,'width':_0x1f15cb,'height':0x1,'pixelFormat':Cesium$4[_0x4d8981(0x324)][_0x4d8981(0x334)],'pixelDatatype':Cesium$4[_0x4d8981(0x342)][_0x4d8981(0x249)],'sampler':new Cesium$4[(_0x4d8981(0x309))]({'minificationFilter':Cesium$4[_0x4d8981(0x270)]['LINEAR'],'magnificationFilter':Cesium$4[_0x4d8981(0x2ba)][_0x4d8981(0x1f9)]})};this['textures']={'segmentsColor':Util[_0x4d8981(0x2e5)](_0x2decd9),'segmentsDepth':Util[_0x4d8981(0x2e5)](_0x29b4),'currentTrailsColor':Util[_0x4d8981(0x2e5)](_0x2decd9),'currentTrailsDepth':Util[_0x4d8981(0x2e5)](_0x29b4),'nextTrailsColor':Util[_0x4d8981(0x2e5)](_0x2decd9),'nextTrailsDepth':Util[_0x4d8981(0x2e5)](_0x29b4),'colorTable':Util[_0x4d8981(0x2e5)](_0xab7031,_0x42da96)};}},{'key':_0x229000(0x24a),'value':function _0x66b5e8(_0x4d7218){var _0x305f8a=_0x229000;this[_0x305f8a(0x239)]={'segments':Util[_0x305f8a(0x1fd)](_0x4d7218,this[_0x305f8a(0x310)][_0x305f8a(0x241)],this[_0x305f8a(0x310)][_0x305f8a(0x277)]),'currentTrails':Util['createFramebuffer'](_0x4d7218,this[_0x305f8a(0x310)][_0x305f8a(0x2e9)],this['textures'][_0x305f8a(0x300)]),'nextTrails':Util[_0x305f8a(0x1fd)](_0x4d7218,this[_0x305f8a(0x310)]['nextTrailsColor'],this[_0x305f8a(0x310)]['nextTrailsDepth'])};}},{'key':'createSegmentsGeometry','value':function _0x1c7416(_0x1cf858){var _0x503a2a=_0x229000,_0x36e1c0=0x4,_0x5c37bc=[];for(var _0x4fd3d6=0x0;_0x4fd3d6<_0x1cf858[_0x503a2a(0x20f)];_0x4fd3d6++){for(var _0x557c08=0x0;_0x557c08<_0x1cf858[_0x503a2a(0x20f)];_0x557c08++){for(var _0x48231a=0x0;_0x48231a<_0x36e1c0;_0x48231a++){_0x5c37bc[_0x503a2a(0x280)](_0x4fd3d6/_0x1cf858['particlesTextureSize']),_0x5c37bc[_0x503a2a(0x280)](_0x557c08/_0x1cf858['particlesTextureSize']);}}}_0x5c37bc=new Float32Array(_0x5c37bc);var _0x23dab4=[],_0x2ce5b8=[-0x1,0x1],_0x4397a7=[-0x1,0x1];for(var _0x3345ec=0x0;_0x3345ec<_0x1cf858[_0x503a2a(0x2fe)];_0x3345ec++){for(var _0x29ad1a=0x0;_0x29ad1a<_0x36e1c0/0x2;_0x29ad1a++){for(var _0x55089e=0x0;_0x55089e<_0x36e1c0/0x2;_0x55089e++){_0x23dab4[_0x503a2a(0x280)](_0x2ce5b8[_0x29ad1a]),_0x23dab4['push'](_0x4397a7[_0x55089e]),_0x23dab4['push'](0x0);}}}_0x23dab4=new Float32Array(_0x23dab4);var _0x300e0d=0x6*_0x1cf858[_0x503a2a(0x2fe)],_0x5cd4ae=new Uint32Array(_0x300e0d);for(var _0x101d50=0x0,_0x777799=0x0,_0x176640=0x0;_0x101d50<_0x1cf858['maxParticles'];_0x101d50++){_0x5cd4ae[_0x777799++]=_0x176640+0x0,_0x5cd4ae[_0x777799++]=_0x176640+0x1,_0x5cd4ae[_0x777799++]=_0x176640+0x2,_0x5cd4ae[_0x777799++]=_0x176640+0x2,_0x5cd4ae[_0x777799++]=_0x176640+0x1,_0x5cd4ae[_0x777799++]=_0x176640+0x3,_0x176640+=0x4;}var _0x20b35f=new Cesium$4[(_0x503a2a(0x272))]({'attributes':new Cesium$4[(_0x503a2a(0x29c))]({'st':new Cesium$4[(_0x503a2a(0x282))]({'componentDatatype':Cesium$4[_0x503a2a(0x28f)][_0x503a2a(0x249)],'componentsPerAttribute':0x2,'values':_0x5c37bc}),'normal':new Cesium$4[(_0x503a2a(0x282))]({'componentDatatype':Cesium$4[_0x503a2a(0x28f)][_0x503a2a(0x249)],'componentsPerAttribute':0x3,'values':_0x23dab4})}),'indices':_0x5cd4ae});return _0x20b35f;}},{'key':_0x229000(0x1d5),'value':function _0x4fa1ef(_0x5190ec,_0x1afa34,_0x49340c,_0x12052e){var _0x20a89c=_0x229000,_0x52b9fa=this;this[_0x20a89c(0x1d3)]={'segments':new CustomPrimitive({'commandType':_0x20a89c(0x20c),'attributeLocations':{'st':0x0,'normal':0x1},'geometry':this[_0x20a89c(0x29e)](_0x1afa34),'primitiveType':Cesium$4[_0x20a89c(0x29d)]['TRIANGLES'],'uniformMap':{'currentParticlesPosition':function _0x18277d(){var _0x6cea4a=_0x20a89c;return _0x12052e['particlesTextures'][_0x6cea4a(0x325)];},'postProcessingPosition':function _0xf41d94(){var _0xa14b35=_0x20a89c;return _0x12052e[_0xa14b35(0x283)][_0xa14b35(0x205)];},'postProcessingSpeed':function _0x42158f(){var _0x511ae1=_0x20a89c;return _0x12052e[_0x511ae1(0x283)][_0x511ae1(0x2d1)];},'colorTable':function _0x13d81b(){var _0x498561=_0x20a89c;return _0x52b9fa[_0x498561(0x310)][_0x498561(0x26b)];},'aspect':function _0x3c1adf(){var _0x5e4283=_0x20a89c;return _0x5190ec[_0x5e4283(0x1ce)]/_0x5190ec[_0x5e4283(0x2da)];},'pixelSize':function _0x91656d(){var _0x4a01ab=_0x20a89c;return _0x49340c[_0x4a01ab(0x24c)];},'lineWidth':function _0x8bb901(){return _0x1afa34['lineWidth'];},'particleHeight':function _0x25f51c(){return _0x1afa34['particleHeight'];}},'vertexShaderSource':new Cesium$4[(_0x20a89c(0x235))]({'sources':[segmentDraw_vert]}),'fragmentShaderSource':new Cesium$4[(_0x20a89c(0x235))]({'sources':[segmentDraw_frag]}),'rawRenderState':Util[_0x20a89c(0x314)]({'viewport':undefined,'depthTest':{'enabled':!![]},'depthMask':!![]}),'framebuffer':this[_0x20a89c(0x239)][_0x20a89c(0x269)],'autoClear':!![]}),'trails':new CustomPrimitive({'commandType':'Draw','attributeLocations':{'position':0x0,'st':0x1},'geometry':Util[_0x20a89c(0x292)](),'primitiveType':Cesium$4[_0x20a89c(0x29d)][_0x20a89c(0x200)],'uniformMap':{'segmentsColorTexture':function _0x20ba0f(){var _0x2d85a1=_0x20a89c;return _0x52b9fa[_0x2d85a1(0x310)][_0x2d85a1(0x241)];},'segmentsDepthTexture':function _0x550282(){var _0x37dc9c=_0x20a89c;return _0x52b9fa[_0x37dc9c(0x310)][_0x37dc9c(0x277)];},'currentTrailsColor':function _0x103ff1(){var _0x4f38f3=_0x20a89c;return _0x52b9fa[_0x4f38f3(0x239)]['currentTrails'][_0x4f38f3(0x2ab)](0x0);},'trailsDepthTexture':function _0x58b2cb(){var _0x1d5afa=_0x20a89c;return _0x52b9fa[_0x1d5afa(0x239)]['currentTrails']['depthTexture'];},'fadeOpacity':function _0x11c51b(){return _0x1afa34['fadeOpacity'];}},'vertexShaderSource':new Cesium$4[(_0x20a89c(0x235))]({'defines':[_0x20a89c(0x263)],'sources':[fullscreen_vert]}),'fragmentShaderSource':new Cesium$4[(_0x20a89c(0x235))]({'defines':[_0x20a89c(0x1e7)],'sources':[trailDraw_frag]}),'rawRenderState':Util[_0x20a89c(0x314)]({'viewport':undefined,'depthTest':{'enabled':!![],'func':Cesium$4['DepthFunction'][_0x20a89c(0x255)]},'depthMask':!![]}),'framebuffer':this[_0x20a89c(0x239)][_0x20a89c(0x266)],'autoClear':!![],'preExecute':function _0x339b8b(){var _0x2c3c3d=_0x20a89c,_0x10d259=_0x52b9fa[_0x2c3c3d(0x239)]['currentTrails'];_0x52b9fa['framebuffers'][_0x2c3c3d(0x2ec)]=_0x52b9fa[_0x2c3c3d(0x239)][_0x2c3c3d(0x266)],_0x52b9fa['framebuffers'][_0x2c3c3d(0x266)]=_0x10d259,_0x52b9fa[_0x2c3c3d(0x1d3)]['trails']['commandToExecute'][_0x2c3c3d(0x32d)]=_0x52b9fa[_0x2c3c3d(0x239)][_0x2c3c3d(0x266)],_0x52b9fa[_0x2c3c3d(0x1d3)][_0x2c3c3d(0x1f3)][_0x2c3c3d(0x320)][_0x2c3c3d(0x32d)]=_0x52b9fa[_0x2c3c3d(0x239)][_0x2c3c3d(0x266)];}}),'screen':new CustomPrimitive({'commandType':_0x20a89c(0x20c),'attributeLocations':{'position':0x0,'st':0x1},'geometry':Util[_0x20a89c(0x292)](),'primitiveType':Cesium$4[_0x20a89c(0x29d)][_0x20a89c(0x200)],'uniformMap':{'trailsColorTexture':function _0x50156e(){var _0x4ca319=_0x20a89c;return _0x52b9fa[_0x4ca319(0x239)][_0x4ca319(0x266)]['getColorTexture'](0x0);},'trailsDepthTexture':function _0x15dd10(){var _0x13c49b=_0x20a89c;return _0x52b9fa['framebuffers'][_0x13c49b(0x266)][_0x13c49b(0x346)];}},'vertexShaderSource':new Cesium$4[(_0x20a89c(0x235))]({'defines':[_0x20a89c(0x263)],'sources':[fullscreen_vert]}),'fragmentShaderSource':new Cesium$4[(_0x20a89c(0x235))]({'defines':[_0x20a89c(0x1e7)],'sources':[screenDraw_frag]}),'rawRenderState':Util['createRawRenderState']({'viewport':undefined,'depthTest':{'enabled':![]},'depthMask':!![],'blending':{'enabled':!![]}}),'framebuffer':undefined})};}}]),_0x3a9991;}()),getWind_frag='//\x20the\x20size\x20of\x20UV\x20textures:\x20width\x20=\x20lon,\x20height\x20=\x20lat*lev\x0auniform\x20sampler2D\x20U;\x20//\x20eastward\x20wind\x20\x0auniform\x20sampler2D\x20V;\x20//\x20northward\x20wind\x0a\x0auniform\x20sampler2D\x20currentParticlesPosition;\x20//\x20(lon,\x20lat,\x20lev)\x0a\x0auniform\x20vec3\x20dimension;\x20//\x20(lon,\x20lat,\x20lev)\x0auniform\x20vec3\x20minimum;\x20//\x20minimum\x20of\x20each\x20dimension\x0auniform\x20vec3\x20maximum;\x20//\x20maximum\x20of\x20each\x20dimension\x0auniform\x20vec3\x20interval;\x20//\x20interval\x20of\x20each\x20dimension\x0a\x0avarying\x20vec2\x20v_textureCoordinates;\x0a\x0avec2\x20mapPositionToNormalizedIndex2D(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20ensure\x20the\x20range\x20of\x20longitude\x20and\x20latitude\x0a\x20\x20\x20\x20lonLatLev.x\x20=\x20mod(lonLatLev.x,\x20360.0);\x0a\x20\x20\x20\x20lonLatLev.y\x20=\x20clamp(lonLatLev.y,\x20-90.0,\x2090.0);\x0a\x0a\x20\x20\x20\x20vec3\x20index3D\x20=\x20vec3(0.0);\x0a\x20\x20\x20\x20index3D.x\x20=\x20(lonLatLev.x\x20-\x20minimum.x)\x20/\x20interval.x;\x0a\x20\x20\x20\x20index3D.y\x20=\x20(lonLatLev.y\x20-\x20minimum.y)\x20/\x20interval.y;\x0a\x20\x20\x20\x20index3D.z\x20=\x20(lonLatLev.z\x20-\x20minimum.z)\x20/\x20interval.z;\x0a\x0a\x20\x20\x20\x20//\x20the\x20st\x20texture\x20coordinate\x20corresponding\x20to\x20(col,\x20row)\x20index\x0a\x20\x20\x20\x20//\x20example\x0a\x20\x20\x20\x20//\x20data\x20array\x20is\x20[0,\x201,\x202,\x203,\x204,\x205],\x20width\x20=\x203,\x20height\x20=\x202\x0a\x20\x20\x20\x20//\x20the\x20content\x20of\x20texture\x20will\x20be\x0a\x20\x20\x20\x20//\x20t\x201.0\x0a\x20\x20\x20\x20//\x20\x20\x20\x20|\x20\x203\x204\x205\x0a\x20\x20\x20\x20//\x20\x20\x20\x20|\x0a\x20\x20\x20\x20//\x20\x20\x20\x20|\x20\x200\x201\x202\x0a\x20\x20\x20\x20//\x20\x20\x200.0------1.0\x20s\x0a\x0a\x20\x20\x20\x20vec2\x20index2D\x20=\x20vec2(index3D.x,\x20index3D.z\x20*\x20dimension.y\x20+\x20index3D.y);\x0a\x20\x20\x20\x20vec2\x20normalizedIndex2D\x20=\x20vec2(index2D.x\x20/\x20dimension.x,\x20index2D.y\x20/\x20(dimension.y\x20*\x20dimension.z));\x0a\x20\x20\x20\x20return\x20normalizedIndex2D;\x0a}\x0a\x0afloat\x20getWind(sampler2D\x20windTexture,\x20vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLatLev);\x0a\x20\x20\x20\x20float\x20result\x20=\x20texture2D(windTexture,\x20normalizedIndex2D).r;\x0a\x20\x20\x20\x20return\x20result;\x0a}\x0a\x0aconst\x20mat4\x20kernelMatrix\x20=\x20mat4(\x0a\x20\x20\x20\x200.0,\x20-1.0,\x202.0,\x20-1.0,\x20//\x20first\x20column\x0a\x20\x20\x20\x202.0,\x200.0,\x20-5.0,\x203.0,\x20//\x20second\x20column\x0a\x20\x20\x20\x200.0,\x201.0,\x204.0,\x20-3.0,\x20//\x20third\x20column\x0a\x20\x20\x20\x200.0,\x200.0,\x20-1.0,\x201.0\x20//\x20fourth\x20column\x0a);\x0afloat\x20oneDimensionInterpolation(float\x20t,\x20float\x20p0,\x20float\x20p1,\x20float\x20p2,\x20float\x20p3)\x20{\x0a\x20\x20\x20\x20vec4\x20tVec4\x20=\x20vec4(1.0,\x20t,\x20t\x20*\x20t,\x20t\x20*\x20t\x20*\x20t);\x0a\x20\x20\x20\x20tVec4\x20=\x20tVec4\x20/\x202.0;\x0a\x20\x20\x20\x20vec4\x20pVec4\x20=\x20vec4(p0,\x20p1,\x20p2,\x20p3);\x0a\x20\x20\x20\x20return\x20dot((tVec4\x20*\x20kernelMatrix),\x20pVec4);\x0a}\x0a\x0afloat\x20calculateB(sampler2D\x20windTexture,\x20float\x20t,\x20float\x20lon,\x20float\x20lat,\x20float\x20lev)\x20{\x0a\x20\x20\x20\x20float\x20lon0\x20=\x20floor(lon)\x20-\x201.0\x20*\x20interval.x;\x0a\x20\x20\x20\x20float\x20lon1\x20=\x20floor(lon);\x0a\x20\x20\x20\x20float\x20lon2\x20=\x20floor(lon)\x20+\x201.0\x20*\x20interval.x;\x0a\x20\x20\x20\x20float\x20lon3\x20=\x20floor(lon)\x20+\x202.0\x20*\x20interval.x;\x0a\x0a\x20\x20\x20\x20float\x20p0\x20=\x20getWind(windTexture,\x20vec3(lon0,\x20lat,\x20lev));\x0a\x20\x20\x20\x20float\x20p1\x20=\x20getWind(windTexture,\x20vec3(lon1,\x20lat,\x20lev));\x0a\x20\x20\x20\x20float\x20p2\x20=\x20getWind(windTexture,\x20vec3(lon2,\x20lat,\x20lev));\x0a\x20\x20\x20\x20float\x20p3\x20=\x20getWind(windTexture,\x20vec3(lon3,\x20lat,\x20lev));\x0a\x0a\x20\x20\x20\x20return\x20oneDimensionInterpolation(t,\x20p0,\x20p1,\x20p2,\x20p3);\x0a}\x0a\x0afloat\x20interpolateOneTexture(sampler2D\x20windTexture,\x20vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20float\x20lon\x20=\x20lonLatLev.x;\x0a\x20\x20\x20\x20float\x20lat\x20=\x20lonLatLev.y;\x0a\x20\x20\x20\x20float\x20lev\x20=\x20lonLatLev.z;\x0a\x0a\x20\x20\x20\x20float\x20lat0\x20=\x20floor(lat)\x20-\x201.0\x20*\x20interval.y;\x0a\x20\x20\x20\x20float\x20lat1\x20=\x20floor(lat);\x0a\x20\x20\x20\x20float\x20lat2\x20=\x20floor(lat)\x20+\x201.0\x20*\x20interval.y;\x0a\x20\x20\x20\x20float\x20lat3\x20=\x20floor(lat)\x20+\x202.0\x20*\x20interval.y;\x0a\x0a\x20\x20\x20\x20vec2\x20coefficient\x20=\x20lonLatLev.xy\x20-\x20floor(lonLatLev.xy);\x0a\x20\x20\x20\x20float\x20b0\x20=\x20calculateB(windTexture,\x20coefficient.x,\x20lon,\x20lat0,\x20lev);\x0a\x20\x20\x20\x20float\x20b1\x20=\x20calculateB(windTexture,\x20coefficient.x,\x20lon,\x20lat1,\x20lev);\x0a\x20\x20\x20\x20float\x20b2\x20=\x20calculateB(windTexture,\x20coefficient.x,\x20lon,\x20lat2,\x20lev);\x0a\x20\x20\x20\x20float\x20b3\x20=\x20calculateB(windTexture,\x20coefficient.x,\x20lon,\x20lat3,\x20lev);\x0a\x0a\x20\x20\x20\x20return\x20oneDimensionInterpolation(coefficient.y,\x20b0,\x20b1,\x20b2,\x20b3);\x0a}\x0a\x0avec3\x20bicubic(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20https://en.wikipedia.org/wiki/Bicubic_interpolation#Bicubic_convolution_algorithm\x0a\x20\x20\x20\x20float\x20u\x20=\x20interpolateOneTexture(U,\x20lonLatLev);\x0a\x20\x20\x20\x20float\x20v\x20=\x20interpolateOneTexture(V,\x20lonLatLev);\x0a\x20\x20\x20\x20float\x20w\x20=\x200.0;\x0a\x20\x20\x20\x20return\x20vec3(u,\x20v,\x20w);\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20\x20\x20vec3\x20lonLatLev\x20=\x20texture2D(currentParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec3\x20windVector\x20=\x20bicubic(lonLatLev);\x0a\x20\x20\x20\x20gl_FragColor\x20=\x20vec4(windVector,\x200.0);\x0a}',updateSpeed_frag='uniform\x20sampler2D\x20currentParticlesSpeed;\x20//\x20(u,\x20v,\x20w,\x20normalization)\x0auniform\x20sampler2D\x20particlesWind;\x0a\x0a//\x20used\x20to\x20calculate\x20the\x20wind\x20norm\x0auniform\x20vec2\x20uSpeedRange;\x20//\x20(min,\x20max);\x0auniform\x20vec2\x20vSpeedRange;\x0auniform\x20float\x20pixelSize;\x0auniform\x20float\x20speedFactor;\x0a\x0avarying\x20vec2\x20v_textureCoordinates;\x0a\x0afloat\x20calculateWindNorm(vec3\x20speed)\x20{\x0a\x20\x20\x20\x20vec3\x20percent\x20=\x20vec3(0.0);\x0a\x20\x20\x20\x20percent.x\x20=\x20(speed.x\x20-\x20uSpeedRange.x)\x20/\x20(uSpeedRange.y\x20-\x20uSpeedRange.x);\x0a\x20\x20\x20\x20percent.y\x20=\x20(speed.y\x20-\x20vSpeedRange.x)\x20/\x20(vSpeedRange.y\x20-\x20vSpeedRange.x);\x0a\x20\x20\x20\x20float\x20normalization\x20=\x20length(percent);\x0a\x0a\x20\x20\x20\x20return\x20normalization;\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20\x20\x20//\x20vec3\x20currentSpeed\x20=\x20texture2D(currentParticlesSpeed,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec3\x20windVector\x20=\x20texture2D(particlesWind,\x20v_textureCoordinates).rgb;\x0a\x0a\x20\x20\x20\x20vec4\x20nextSpeed\x20=\x20vec4(speedFactor\x20*\x20pixelSize\x20*\x20windVector,\x20calculateWindNorm(windVector));\x0a\x20\x20\x20\x20gl_FragColor\x20=\x20nextSpeed;\x0a}',updatePosition_frag=_0x286424(0x240),postProcessingPosition_frag=_0x286424(0x26d),postProcessingSpeed_frag=_0x286424(0x328),Cesium$3=mars3d__namespace[_0x286424(0x2fc)],ParticlesComputing=(function(){var _0x14f074=_0x286424;function _0x3dd461(_0x5e68aa,_0x1b623a,_0x9a6bb9,_0x5795d6){var _0x4800c0=_0xc0df;_classCallCheck(this,_0x3dd461),this['data']=_0x1b623a,this['createWindTextures'](_0x5e68aa,_0x1b623a),this[_0x4800c0(0x2a8)](_0x5e68aa,_0x9a6bb9,_0x5795d6),this[_0x4800c0(0x322)](_0x1b623a,_0x9a6bb9,_0x5795d6);}return _createClass(_0x3dd461,[{'key':'createWindTextures','value':function _0x15f7df(_0x2073d6,_0x8289bc){var _0x40e952=_0xc0df,_0x441a7a={'context':_0x2073d6,'width':_0x8289bc['dimensions']['lon'],'height':_0x8289bc[_0x40e952(0x318)][_0x40e952(0x31a)]*(_0x8289bc['dimensions']['lev']||0x1),'pixelFormat':Cesium$3['PixelFormat'][_0x40e952(0x216)],'pixelDatatype':Cesium$3[_0x40e952(0x342)][_0x40e952(0x249)],'flipY':![],'sampler':new Cesium$3[(_0x40e952(0x309))]({'minificationFilter':Cesium$3['TextureMinificationFilter']['NEAREST'],'magnificationFilter':Cesium$3[_0x40e952(0x2ba)][_0x40e952(0x33f)]})};this[_0x40e952(0x28b)]={'U':Util[_0x40e952(0x2e5)](_0x441a7a,_0x8289bc['U'][_0x40e952(0x34a)]),'V':Util['createTexture'](_0x441a7a,_0x8289bc['V']['array'])};}},{'key':_0x14f074(0x2a8),'value':function _0x339e7c(_0x3fb688,_0x19b437,_0x4e8365){var _0x312581=_0x14f074,_0x47ec0b={'context':_0x3fb688,'width':_0x19b437['particlesTextureSize'],'height':_0x19b437[_0x312581(0x20f)],'pixelFormat':Cesium$3[_0x312581(0x324)]['RGBA'],'pixelDatatype':Cesium$3[_0x312581(0x342)][_0x312581(0x249)],'flipY':![],'sampler':new Cesium$3['Sampler']({'minificationFilter':Cesium$3[_0x312581(0x270)]['NEAREST'],'magnificationFilter':Cesium$3[_0x312581(0x2ba)][_0x312581(0x33f)]})},_0xafe33a=this[_0x312581(0x267)](_0x19b437[_0x312581(0x2fe)],_0x4e8365),_0x19b105=new Float32Array(0x4*_0x19b437[_0x312581(0x2fe)])['fill'](0x0);this[_0x312581(0x283)]={'particlesWind':Util['createTexture'](_0x47ec0b),'currentParticlesPosition':Util[_0x312581(0x2e5)](_0x47ec0b,_0xafe33a),'nextParticlesPosition':Util[_0x312581(0x2e5)](_0x47ec0b,_0xafe33a),'currentParticlesSpeed':Util[_0x312581(0x2e5)](_0x47ec0b,_0x19b105),'nextParticlesSpeed':Util[_0x312581(0x2e5)](_0x47ec0b,_0x19b105),'postProcessingPosition':Util[_0x312581(0x2e5)](_0x47ec0b,_0xafe33a),'postProcessingSpeed':Util[_0x312581(0x2e5)](_0x47ec0b,_0x19b105)};}},{'key':'randomizeParticles','value':function _0x2012d1(_0x516337,_0xa3bfbf){var _0x51d6a4=_0x14f074,_0x2c8654=new Float32Array(0x4*_0x516337);for(var _0x11f303=0x0;_0x11f303<_0x516337;_0x11f303++){_0x2c8654[0x4*_0x11f303]=Cesium$3[_0x51d6a4(0x293)][_0x51d6a4(0x30f)](_0xa3bfbf[_0x51d6a4(0x29b)]['x'],_0xa3bfbf[_0x51d6a4(0x29b)]['y']),_0x2c8654[0x4*_0x11f303+0x1]=Cesium$3[_0x51d6a4(0x293)][_0x51d6a4(0x30f)](_0xa3bfbf['latRange']['x'],_0xa3bfbf['latRange']['y']),_0x2c8654[0x4*_0x11f303+0x2]=Cesium$3[_0x51d6a4(0x293)][_0x51d6a4(0x30f)](this[_0x51d6a4(0x1ee)][_0x51d6a4(0x337)][_0x51d6a4(0x207)],this[_0x51d6a4(0x1ee)][_0x51d6a4(0x337)][_0x51d6a4(0x1d8)]),_0x2c8654[0x4*_0x11f303+0x3]=0x0;}return _0x2c8654;}},{'key':_0x14f074(0x25e),'value':function _0xcb3623(){var _0x6110af=this;Object['keys'](this['particlesTextures'])['forEach'](function(_0x420482){var _0x16b9f9=_0xc0df;_0x6110af['particlesTextures'][_0x420482][_0x16b9f9(0x2ef)]();});}},{'key':_0x14f074(0x322),'value':function _0x271f85(_0x52b676,_0x4675e9,_0x26d86a){var _0x300375=_0x14f074,_0x533402=new Cesium$3[(_0x300375(0x2b8))](_0x52b676[_0x300375(0x318)]['lon'],_0x52b676[_0x300375(0x318)][_0x300375(0x31a)],_0x52b676[_0x300375(0x318)][_0x300375(0x337)]),_0x11dbd8=new Cesium$3[(_0x300375(0x2b8))](_0x52b676[_0x300375(0x2e4)][_0x300375(0x207)],_0x52b676[_0x300375(0x31a)][_0x300375(0x207)],_0x52b676['lev'][_0x300375(0x207)]),_0x4385a6=new Cesium$3['Cartesian3'](_0x52b676['lon']['max'],_0x52b676['lat'][_0x300375(0x1d8)],_0x52b676[_0x300375(0x337)]['max']),_0x6abef7=new Cesium$3[(_0x300375(0x2b8))]((_0x4385a6['x']-_0x11dbd8['x'])/(_0x533402['x']-0x1),(_0x4385a6['y']-_0x11dbd8['y'])/(_0x533402['y']-0x1),_0x533402['z']>0x1?(_0x4385a6['z']-_0x11dbd8['z'])/(_0x533402['z']-0x1):0x1),_0x4d886d=new Cesium$3[(_0x300375(0x2c4))](_0x52b676['U'][_0x300375(0x207)],_0x52b676['U'][_0x300375(0x1d8)]),_0x287b77=new Cesium$3[(_0x300375(0x2c4))](_0x52b676['V'][_0x300375(0x207)],_0x52b676['V'][_0x300375(0x1d8)]),_0xc31603=this;this[_0x300375(0x1d3)]={'getWind':new CustomPrimitive({'commandType':_0x300375(0x22f),'uniformMap':{'U':function _0x457c71(){var _0x369306=_0x300375;return _0xc31603[_0x369306(0x28b)]['U'];},'V':function _0x3782cb(){var _0x12ae56=_0x300375;return _0xc31603[_0x12ae56(0x28b)]['V'];},'currentParticlesPosition':function _0x531646(){var _0xd4b801=_0x300375;return _0xc31603[_0xd4b801(0x283)][_0xd4b801(0x325)];},'dimension':function _0x41c0b3(){return _0x533402;},'minimum':function _0x2f8623(){return _0x11dbd8;},'maximum':function _0x33efdb(){return _0x4385a6;},'interval':function _0x57add2(){return _0x6abef7;}},'fragmentShaderSource':new Cesium$3[(_0x300375(0x235))]({'sources':[getWind_frag]}),'outputTexture':this[_0x300375(0x283)][_0x300375(0x321)],'preExecute':function _0x20b7dd(){var _0x12ee34=_0x300375;_0xc31603[_0x12ee34(0x1d3)][_0x12ee34(0x1f0)]['commandToExecute']['outputTexture']=_0xc31603['particlesTextures'][_0x12ee34(0x321)];}}),'updateSpeed':new CustomPrimitive({'commandType':_0x300375(0x22f),'uniformMap':{'currentParticlesSpeed':function _0x2349c6(){var _0x11f734=_0x300375;return _0xc31603['particlesTextures'][_0x11f734(0x291)];},'particlesWind':function _0x185e94(){var _0x2eaac2=_0x300375;return _0xc31603['particlesTextures'][_0x2eaac2(0x321)];},'uSpeedRange':function _0x59e63e(){return _0x4d886d;},'vSpeedRange':function _0x48d924(){return _0x287b77;},'pixelSize':function _0x5b5be5(){var _0x407336=_0x300375;return _0x26d86a[_0x407336(0x24c)];},'speedFactor':function _0x2394c9(){var _0x5cd818=_0x300375;return _0x4675e9[_0x5cd818(0x252)];}},'fragmentShaderSource':new Cesium$3[(_0x300375(0x235))]({'sources':[updateSpeed_frag]}),'outputTexture':this[_0x300375(0x283)][_0x300375(0x33b)],'preExecute':function _0x1f20a2(){var _0x2a6d42=_0x300375,_0x5a1693=_0xc31603[_0x2a6d42(0x283)][_0x2a6d42(0x291)];_0xc31603[_0x2a6d42(0x283)]['currentParticlesSpeed']=_0xc31603[_0x2a6d42(0x283)][_0x2a6d42(0x2d1)],_0xc31603[_0x2a6d42(0x283)]['postProcessingSpeed']=_0x5a1693,_0xc31603[_0x2a6d42(0x1d3)][_0x2a6d42(0x1ed)][_0x2a6d42(0x210)][_0x2a6d42(0x23e)]=_0xc31603[_0x2a6d42(0x283)][_0x2a6d42(0x33b)];}}),'updatePosition':new CustomPrimitive({'commandType':_0x300375(0x22f),'uniformMap':{'currentParticlesPosition':function _0x536920(){var _0x2b95bf=_0x300375;return _0xc31603[_0x2b95bf(0x283)][_0x2b95bf(0x325)];},'currentParticlesSpeed':function _0x4137df(){var _0x3a5c61=_0x300375;return _0xc31603[_0x3a5c61(0x283)][_0x3a5c61(0x291)];}},'fragmentShaderSource':new Cesium$3[(_0x300375(0x235))]({'sources':[updatePosition_frag]}),'outputTexture':this[_0x300375(0x283)][_0x300375(0x2ac)],'preExecute':function _0xdaf8e8(){var _0x1f0ed5=_0x300375,_0x344a25=_0xc31603['particlesTextures'][_0x1f0ed5(0x325)];_0xc31603[_0x1f0ed5(0x283)][_0x1f0ed5(0x325)]=_0xc31603[_0x1f0ed5(0x283)]['postProcessingPosition'],_0xc31603[_0x1f0ed5(0x283)][_0x1f0ed5(0x205)]=_0x344a25,_0xc31603[_0x1f0ed5(0x1d3)]['updatePosition'][_0x1f0ed5(0x210)][_0x1f0ed5(0x23e)]=_0xc31603['particlesTextures'][_0x1f0ed5(0x2ac)];}}),'postProcessingPosition':new CustomPrimitive({'commandType':_0x300375(0x22f),'uniformMap':{'nextParticlesPosition':function _0x2f87c3(){var _0xdd9563=_0x300375;return _0xc31603[_0xdd9563(0x283)]['nextParticlesPosition'];},'nextParticlesSpeed':function _0x3365b7(){var _0x45f1a5=_0x300375;return _0xc31603[_0x45f1a5(0x283)]['nextParticlesSpeed'];},'lonRange':function _0x42ed6c(){return _0x26d86a['lonRange'];},'latRange':function _0x217347(){var _0x449c6a=_0x300375;return _0x26d86a[_0x449c6a(0x265)];},'randomCoefficient':function _0x216d1a(){var _0x3693a4=_0x300375,_0x2fa1d2=Math[_0x3693a4(0x214)]();return _0x2fa1d2;},'dropRate':function _0x1f2e0b(){var _0xf8fb47=_0x300375;return _0x4675e9[_0xf8fb47(0x2b9)];},'dropRateBump':function _0x507baa(){var _0x2669cb=_0x300375;return _0x4675e9[_0x2669cb(0x284)];}},'fragmentShaderSource':new Cesium$3[(_0x300375(0x235))]({'sources':[postProcessingPosition_frag]}),'outputTexture':this[_0x300375(0x283)][_0x300375(0x205)],'preExecute':function _0x51e376(){var _0x4f7814=_0x300375;_0xc31603[_0x4f7814(0x1d3)][_0x4f7814(0x205)]['commandToExecute'][_0x4f7814(0x23e)]=_0xc31603['particlesTextures'][_0x4f7814(0x205)];}}),'postProcessingSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'postProcessingPosition':function _0x46f613(){var _0x220887=_0x300375;return _0xc31603[_0x220887(0x283)][_0x220887(0x205)];},'nextParticlesSpeed':function _0x4de343(){var _0x186c38=_0x300375;return _0xc31603[_0x186c38(0x283)][_0x186c38(0x33b)];}},'fragmentShaderSource':new Cesium$3[(_0x300375(0x235))]({'sources':[postProcessingSpeed_frag]}),'outputTexture':this[_0x300375(0x283)][_0x300375(0x2d1)],'preExecute':function _0x1bea43(){var _0x4afa16=_0x300375;_0xc31603['primitives']['postProcessingSpeed']['commandToExecute']['outputTexture']=_0xc31603[_0x4afa16(0x283)][_0x4afa16(0x2d1)];}})};}}]),_0x3dd461;}()),Cesium$2=mars3d__namespace['Cesium'],ParticleSystem=(function(){var _0x5d7c31=_0x286424;function _0x4793e2(_0x19e95b,_0x45a763,_0x123fda,_0x34f193){var _0x5705c3=_0xc0df;_classCallCheck(this,_0x4793e2),this[_0x5705c3(0x316)]=_0x19e95b,_0x45a763=_objectSpread2({},_0x45a763);if(_0x45a763[_0x5705c3(0x2b5)]&&_0x45a763['vdata']){var _0x53d01c,_0x1b1abb,_0x3e8ea9,_0x36a887,_0x2217ad,_0x41ca3c;_0x45a763['dimensions']={},_0x45a763['dimensions'][_0x5705c3(0x2e4)]=_0x45a763[_0x5705c3(0x2b1)],_0x45a763['dimensions']['lat']=_0x45a763[_0x5705c3(0x2de)],_0x45a763[_0x5705c3(0x318)][_0x5705c3(0x337)]=_0x45a763[_0x5705c3(0x337)]||0x1,_0x45a763[_0x5705c3(0x2e4)]={},_0x45a763[_0x5705c3(0x2e4)][_0x5705c3(0x207)]=_0x45a763[_0x5705c3(0x1cf)],_0x45a763[_0x5705c3(0x2e4)][_0x5705c3(0x1d8)]=_0x45a763[_0x5705c3(0x1d6)],_0x45a763['lat']={},_0x45a763[_0x5705c3(0x31a)]['min']=_0x45a763[_0x5705c3(0x2ee)],_0x45a763['lat'][_0x5705c3(0x1d8)]=_0x45a763['ymax'],_0x45a763['lev']={},_0x45a763['lev'][_0x5705c3(0x207)]=(_0x53d01c=_0x45a763[_0x5705c3(0x2a2)])!==null&&_0x53d01c!==void 0x0?_0x53d01c:0x1,_0x45a763[_0x5705c3(0x337)][_0x5705c3(0x1d8)]=(_0x1b1abb=_0x45a763[_0x5705c3(0x2d4)])!==null&&_0x1b1abb!==void 0x0?_0x1b1abb:0x1,_0x45a763['U']={},_0x45a763['U'][_0x5705c3(0x34a)]=new Float32Array(_0x45a763[_0x5705c3(0x2b5)]),_0x45a763['U'][_0x5705c3(0x207)]=(_0x3e8ea9=_0x45a763[_0x5705c3(0x246)])!==null&&_0x3e8ea9!==void 0x0?_0x3e8ea9:Math[_0x5705c3(0x207)][_0x5705c3(0x1eb)](Math,_toConsumableArray(_0x45a763['udata'])),_0x45a763['U'][_0x5705c3(0x1d8)]=(_0x36a887=_0x45a763[_0x5705c3(0x1d7)])!==null&&_0x36a887!==void 0x0?_0x36a887:Math[_0x5705c3(0x1d8)][_0x5705c3(0x1eb)](Math,_toConsumableArray(_0x45a763['udata'])),_0x45a763['V']={},_0x45a763['V'][_0x5705c3(0x34a)]=new Float32Array(_0x45a763[_0x5705c3(0x219)]),_0x45a763['V']['min']=(_0x2217ad=_0x45a763['vmin'])!==null&&_0x2217ad!==void 0x0?_0x2217ad:Math['min'][_0x5705c3(0x1eb)](Math,_toConsumableArray(_0x45a763[_0x5705c3(0x219)])),_0x45a763['V'][_0x5705c3(0x1d8)]=(_0x41ca3c=_0x45a763[_0x5705c3(0x243)])!==null&&_0x41ca3c!==void 0x0?_0x41ca3c:Math[_0x5705c3(0x1d8)][_0x5705c3(0x1eb)](Math,_toConsumableArray(_0x45a763[_0x5705c3(0x219)]));}this['data']=_0x45a763,this[_0x5705c3(0x1df)]=_0x123fda,this[_0x5705c3(0x2ad)]=_0x34f193,this[_0x5705c3(0x21b)]=new ParticlesComputing(this['context'],this['data'],this[_0x5705c3(0x1df)],this['viewerParameters']),this[_0x5705c3(0x345)]=new ParticlesRendering(this[_0x5705c3(0x316)],this[_0x5705c3(0x1ee)],this[_0x5705c3(0x1df)],this[_0x5705c3(0x2ad)],this[_0x5705c3(0x21b)]);}return _createClass(_0x4793e2,[{'key':_0x5d7c31(0x2df),'value':function _0x4e7abc(_0x252c51){var _0x50ea6b=_0x5d7c31,_0x588495=this;this['particlesComputing']['destroyParticlesTextures'](),Object[_0x50ea6b(0x22d)](this[_0x50ea6b(0x21b)]['windTextures'])['forEach'](function(_0x1f8038){var _0x3ed273=_0x50ea6b;_0x588495[_0x3ed273(0x21b)][_0x3ed273(0x28b)][_0x1f8038]['destroy']();}),this['particlesRendering'][_0x50ea6b(0x310)][_0x50ea6b(0x26b)][_0x50ea6b(0x2ef)](),Object[_0x50ea6b(0x22d)](this[_0x50ea6b(0x345)][_0x50ea6b(0x239)])[_0x50ea6b(0x331)](function(_0x54b46){var _0x347829=_0x50ea6b;_0x588495[_0x347829(0x345)]['framebuffers'][_0x54b46]['destroy']();}),this[_0x50ea6b(0x316)]=_0x252c51,this[_0x50ea6b(0x21b)]=new ParticlesComputing(this['context'],this[_0x50ea6b(0x1ee)],this[_0x50ea6b(0x1df)],this[_0x50ea6b(0x2ad)]),this['particlesRendering']=new ParticlesRendering(this[_0x50ea6b(0x316)],this['data'],this[_0x50ea6b(0x1df)],this[_0x50ea6b(0x2ad)],this[_0x50ea6b(0x21b)]);}},{'key':_0x5d7c31(0x2a0),'value':function _0x883d0d(){var _0x414a32=_0x5d7c31,_0x47e1ad=this,_0x3e26d2=new Cesium$2[(_0x414a32(0x298))]({'color':new Cesium$2['Color'](0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Cesium$2[_0x414a32(0x2ae)][_0x414a32(0x22b)]});Object[_0x414a32(0x22d)](this[_0x414a32(0x345)][_0x414a32(0x239)])[_0x414a32(0x331)](function(_0x3bbad1){var _0xb3460e=_0x414a32;_0x3e26d2[_0xb3460e(0x32d)]=_0x47e1ad['particlesRendering']['framebuffers'][_0x3bbad1],_0x3e26d2['execute'](_0x47e1ad['context']);});}},{'key':_0x5d7c31(0x2c0),'value':function _0x54796d(_0x34a281){var _0x288ef2=_0x5d7c31;this['clearFramebuffers'](),this[_0x288ef2(0x21b)][_0x288ef2(0x25e)](),this[_0x288ef2(0x21b)][_0x288ef2(0x2a8)](this[_0x288ef2(0x316)],this[_0x288ef2(0x1df)],this[_0x288ef2(0x2ad)]);if(_0x34a281){var _0x341402=this[_0x288ef2(0x345)][_0x288ef2(0x29e)](this[_0x288ef2(0x1df)]);this[_0x288ef2(0x345)][_0x288ef2(0x1d3)][_0x288ef2(0x269)][_0x288ef2(0x224)]=_0x341402;var _0x4ad333=Cesium$2['VertexArray'][_0x288ef2(0x21e)]({'context':this[_0x288ef2(0x316)],'geometry':_0x341402,'attributeLocations':this['particlesRendering']['primitives']['segments'][_0x288ef2(0x302)],'bufferUsage':Cesium$2[_0x288ef2(0x2ff)][_0x288ef2(0x2d2)]});this[_0x288ef2(0x345)][_0x288ef2(0x1d3)]['segments']['commandToExecute'][_0x288ef2(0x327)]=_0x4ad333;}}},{'key':'setOptions','value':function _0x4442ed(_0x28e2bb){var _0x53289b=_0x5d7c31,_0x15ac39=this,_0x4a8637=![];this[_0x53289b(0x1df)]['maxParticles']!==_0x28e2bb['maxParticles']&&(_0x4a8637=!![]),Object[_0x53289b(0x22d)](_0x28e2bb)[_0x53289b(0x331)](function(_0x522561){var _0x372ed2=_0x53289b;_0x15ac39[_0x372ed2(0x1df)][_0x522561]=_0x28e2bb[_0x522561];}),this[_0x53289b(0x2c0)](_0x4a8637);}},{'key':_0x5d7c31(0x312),'value':function _0x1c43ba(_0x3bc697){var _0x434fcc=_0x5d7c31,_0x27ecee=this;Object[_0x434fcc(0x22d)](_0x3bc697)[_0x434fcc(0x331)](function(_0x2314c8){var _0x3421a4=_0x434fcc;_0x27ecee[_0x3421a4(0x2ad)][_0x2314c8]=_0x3bc697[_0x2314c8];}),this[_0x434fcc(0x2c0)](![]);}},{'key':_0x5d7c31(0x2ef),'value':function _0x49c9bd(){var _0x53c29d=_0x5d7c31,_0x27a0e7=this;clearTimeout(this[_0x53c29d(0x264)]),this[_0x53c29d(0x21b)][_0x53c29d(0x25e)](),Object[_0x53c29d(0x22d)](this[_0x53c29d(0x21b)]['windTextures'])['forEach'](function(_0x3cfc9d){var _0x428e3c=_0x53c29d;_0x27a0e7[_0x428e3c(0x21b)]['windTextures'][_0x3cfc9d]['destroy']();}),this[_0x53c29d(0x345)][_0x53c29d(0x310)][_0x53c29d(0x26b)][_0x53c29d(0x2ef)](),Object[_0x53c29d(0x22d)](this[_0x53c29d(0x345)][_0x53c29d(0x239)])[_0x53c29d(0x331)](function(_0x3a0725){var _0xc5fdfd=_0x53c29d;_0x27a0e7['particlesRendering'][_0xc5fdfd(0x239)][_0x3a0725][_0xc5fdfd(0x2ef)]();});for(var _0x57554c in this){delete this[_0x57554c];}}}]),_0x4793e2;}()),Cesium$1=mars3d__namespace[_0x286424(0x2fc)],BaseLayer$1=mars3d__namespace[_0x286424(0x2d0)][_0x286424(0x260)],DEF_OPTIONS={'particlesNumber':0x1000,'fixedHeight':0x0,'fadeOpacity':0.996,'dropRate':0.003,'dropRateBump':0.01,'speedFactor':0.5,'lineWidth':0x2,'colors':[_0x286424(0x2ea)]},WindLayer=function(_0x8811d6){var _0x370a44=_0x286424;_inherits(_0x198b3d,_0x8811d6);var _0x1126c7=_createSuper(_0x198b3d);function _0x198b3d(){var _0xde3f7c=_0xc0df,_0xff7b7,_0x5d3a11=arguments[_0xde3f7c(0x319)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};return _classCallCheck(this,_0x198b3d),_0x5d3a11=_objectSpread2(_objectSpread2({},DEF_OPTIONS),_0x5d3a11),_0xff7b7=_0x1126c7[_0xde3f7c(0x2c8)](this,_0x5d3a11),_0xff7b7[_0xde3f7c(0x30a)](_0x5d3a11),_0xff7b7;}return _createClass(_0x198b3d,[{'key':_0x370a44(0x2d0),'get':function _0x5cd43c(){return this['primitives'];}},{'key':_0x370a44(0x1ee),'get':function _0x2b47d9(){var _0x4e1a12=_0x370a44;return this[_0x4e1a12(0x31f)];},'set':function _0x41c010(_0x5de5d4){var _0x17ce0c=_0x370a44;this[_0x17ce0c(0x2e7)](_0x5de5d4);}},{'key':_0x370a44(0x229),'get':function _0x4edb8d(){var _0x1f35fa=_0x370a44;return this['options'][_0x1f35fa(0x229)];},'set':function _0x176380(_0x552a03){var _0x48976b=_0x370a44;this[_0x48976b(0x1df)][_0x48976b(0x229)]=_0x552a03,this[_0x48976b(0x2d6)]&&this[_0x48976b(0x2d6)][_0x48976b(0x2bb)]({'colors':_0x552a03}),this['resize']();}},{'key':'_mountedHook','value':function _0x35bc33(){}},{'key':_0x370a44(0x307),'value':function _0x25086b(){var _0x459501=_0x370a44;this[_0x459501(0x28c)]=this[_0x459501(0x33e)][_0x459501(0x28c)],this[_0x459501(0x212)]=this['_map'][_0x459501(0x212)],this['primitives']=new Cesium$1['PrimitiveCollection'](),this[_0x459501(0x33e)]['scene'][_0x459501(0x1d3)][_0x459501(0x332)](this[_0x459501(0x1d3)]),this[_0x459501(0x2ad)]={'lonRange':new Cesium$1[(_0x459501(0x2c4))](),'latRange':new Cesium$1['Cartesian2'](),'pixelSize':0x0},this[_0x459501(0x2dc)]=new Cesium$1['BoundingSphere'](Cesium$1[_0x459501(0x2b8)][_0x459501(0x2e2)],0.99*0x615299),this[_0x459501(0x1ff)](),window[_0x459501(0x26f)](_0x459501(0x22a),this[_0x459501(0x22a)]['bind'](this),![]),this[_0x459501(0x2bc)]=![],this[_0x459501(0x31d)]=![],this['_map']['on'](mars3d__namespace[_0x459501(0x2be)][_0x459501(0x2b2)],this['_onMapWhellEvent'],this),this[_0x459501(0x33e)]['on'](mars3d__namespace['EventType'][_0x459501(0x2a3)],this['_onMouseDownEvent'],this),this['_map']['on'](mars3d__namespace[_0x459501(0x2be)][_0x459501(0x2a1)],this[_0x459501(0x257)],this),this[_0x459501(0x33e)]['on'](mars3d__namespace[_0x459501(0x2be)][_0x459501(0x285)],this[_0x459501(0x1e6)],this),this[_0x459501(0x31f)]&&this['setData'](this['_data']);}},{'key':_0x370a44(0x274),'value':function _0x19a6f1(){var _0x2236fc=_0x370a44;window[_0x2236fc(0x25f)]('resize',this['resize']),this[_0x2236fc(0x33e)][_0x2236fc(0x211)](mars3d__namespace[_0x2236fc(0x2be)][_0x2236fc(0x227)],this[_0x2236fc(0x206)],this),this['_map'][_0x2236fc(0x211)](mars3d__namespace[_0x2236fc(0x2be)][_0x2236fc(0x2b2)],this[_0x2236fc(0x1f6)],this),this[_0x2236fc(0x33e)][_0x2236fc(0x211)](mars3d__namespace[_0x2236fc(0x2be)][_0x2236fc(0x2a3)],this[_0x2236fc(0x1d4)],this),this[_0x2236fc(0x33e)]['off'](mars3d__namespace[_0x2236fc(0x2be)][_0x2236fc(0x2a1)],this[_0x2236fc(0x257)],this),this[_0x2236fc(0x33e)][_0x2236fc(0x211)](mars3d__namespace['EventType'][_0x2236fc(0x285)],this[_0x2236fc(0x1e6)],this),this[_0x2236fc(0x1d3)][_0x2236fc(0x296)](),this[_0x2236fc(0x33e)]['scene']['primitives'][_0x2236fc(0x1ec)](this['primitives']);}},{'key':_0x370a44(0x22a),'value':function _0x299438(){var _0x35dd86=_0x370a44;if(!this['show']||!this[_0x35dd86(0x2d6)])return;this[_0x35dd86(0x1d3)][_0x35dd86(0x25b)]=![],this[_0x35dd86(0x1d3)]['removeAll'](),this[_0x35dd86(0x33e)]['once'](mars3d__namespace[_0x35dd86(0x2be)][_0x35dd86(0x227)],this['_onMap_preRenderEvent'],this);}},{'key':'_onMap_preRenderEvent','value':function _0x6c37a8(_0x4eda58){var _0x9fffb2=_0x370a44;this[_0x9fffb2(0x2d6)][_0x9fffb2(0x2df)](this[_0x9fffb2(0x28c)][_0x9fffb2(0x316)]),this[_0x9fffb2(0x29a)](),this[_0x9fffb2(0x1d3)][_0x9fffb2(0x25b)]=!![];}},{'key':_0x370a44(0x1f6),'value':function _0x2f25ae(_0x49c2e8){var _0x4b10a1=_0x370a44,_0x2858f6=this;clearTimeout(this[_0x4b10a1(0x2e3)]);if(!this['show']||!this['particleSystem'])return;this[_0x4b10a1(0x1d3)][_0x4b10a1(0x25b)]=![],this[_0x4b10a1(0x2e3)]=setTimeout(function(){if(!_0x2858f6['show'])return;_0x2858f6['redraw']();},0xc8);}},{'key':'_onMouseDownEvent','value':function _0x2b9772(_0x4f5f81){var _0x5697e3=_0x370a44;this[_0x5697e3(0x2bc)]=!![];}},{'key':_0x370a44(0x1e6),'value':function _0x21afd5(_0x47201f){var _0x1afffc=_0x370a44;if(!this[_0x1afffc(0x25b)]||!this['particleSystem'])return;this['mouse_down']&&(this['primitives'][_0x1afffc(0x25b)]=![],this['mouse_move']=!![]);}},{'key':_0x370a44(0x257),'value':function _0x5c6e8c(_0x25feaf){var _0x2e438d=_0x370a44;if(!this[_0x2e438d(0x25b)]||!this['particleSystem'])return;this['mouse_down']&&this[_0x2e438d(0x31d)]&&this[_0x2e438d(0x2f3)](),this['primitives'][_0x2e438d(0x25b)]=!![],this['mouse_down']=![],this[_0x2e438d(0x31d)]=![];}},{'key':_0x370a44(0x2f3),'value':function _0x1dd86a(){var _0x45c516=_0x370a44;if(!this[_0x45c516(0x33e)]||!this[_0x45c516(0x25b)])return;this[_0x45c516(0x1ff)](),this[_0x45c516(0x2d6)][_0x45c516(0x312)](this[_0x45c516(0x2ad)]),this[_0x45c516(0x1d3)][_0x45c516(0x25b)]=!![];}},{'key':_0x370a44(0x2e7),'value':function _0x3f4732(_0x43b401){var _0x51e347=_0x370a44;this['_data']=_0x43b401,this['particleSystem']&&this[_0x51e347(0x2d6)]['destroy'](),this[_0x51e347(0x2d6)]=new ParticleSystem(this[_0x51e347(0x28c)][_0x51e347(0x316)],_0x43b401,this[_0x51e347(0x1f4)](),this[_0x51e347(0x2ad)]),this[_0x51e347(0x29a)]();}},{'key':'_setOptionsHook','value':function _0x4f963e(_0x30f5e0,_0x241073){var _0x47c106=_0x370a44;if(_0x30f5e0)for(var _0x259953 in _0x30f5e0){this[_0x259953]=_0x30f5e0[_0x259953];}this[_0x47c106(0x2d6)]&&this[_0x47c106(0x2d6)][_0x47c106(0x2bb)](this['getOptions']());}},{'key':_0x370a44(0x1f4),'value':function _0x1d8e29(){var _0x40140f=_0x370a44,_0x2e49a9=Math['ceil'](Math[_0x40140f(0x2c9)](this[_0x40140f(0x303)]));return this[_0x40140f(0x303)]=_0x2e49a9*_0x2e49a9,{'particlesTextureSize':_0x2e49a9,'maxParticles':this[_0x40140f(0x303)],'particleHeight':this['fixedHeight'],'fadeOpacity':this['fadeOpacity'],'dropRate':this[_0x40140f(0x2b9)],'dropRateBump':this[_0x40140f(0x284)],'speedFactor':this[_0x40140f(0x252)],'lineWidth':this[_0x40140f(0x24e)],'colors':this[_0x40140f(0x229)]};}},{'key':_0x370a44(0x29a),'value':function _0xfb4015(){var _0x427671=_0x370a44;this[_0x427671(0x1d3)]['add'](this[_0x427671(0x2d6)][_0x427671(0x21b)]['primitives'][_0x427671(0x1f0)]),this['primitives'][_0x427671(0x332)](this[_0x427671(0x2d6)]['particlesComputing'][_0x427671(0x1d3)][_0x427671(0x1ed)]),this[_0x427671(0x1d3)][_0x427671(0x332)](this['particleSystem']['particlesComputing'][_0x427671(0x1d3)][_0x427671(0x26a)]),this[_0x427671(0x1d3)][_0x427671(0x332)](this[_0x427671(0x2d6)][_0x427671(0x21b)][_0x427671(0x1d3)][_0x427671(0x205)]),this['primitives'][_0x427671(0x332)](this['particleSystem'][_0x427671(0x21b)]['primitives'][_0x427671(0x2d1)]),this[_0x427671(0x1d3)][_0x427671(0x332)](this[_0x427671(0x2d6)][_0x427671(0x345)][_0x427671(0x1d3)]['segments']),this[_0x427671(0x1d3)][_0x427671(0x332)](this[_0x427671(0x2d6)][_0x427671(0x345)][_0x427671(0x1d3)][_0x427671(0x1f3)]),this[_0x427671(0x1d3)][_0x427671(0x332)](this[_0x427671(0x2d6)][_0x427671(0x345)][_0x427671(0x1d3)][_0x427671(0x339)]);}},{'key':_0x370a44(0x1ff),'value':function _0x327a58(){var _0x23e43a=_0x370a44,_0x13ebe6=this[_0x23e43a(0x212)][_0x23e43a(0x2fb)](this['scene'][_0x23e43a(0x30b)][_0x23e43a(0x1dd)]);if(!_0x13ebe6){var _0x529c37=this[_0x23e43a(0x33e)][_0x23e43a(0x317)]();_0x13ebe6=Cesium$1[_0x23e43a(0x236)][_0x23e43a(0x233)](_0x529c37[_0x23e43a(0x1cf)],_0x529c37[_0x23e43a(0x2ee)],_0x529c37['xmax'],_0x529c37[_0x23e43a(0x28e)]);}var _0x324bcc=Util[_0x23e43a(0x301)](_0x13ebe6);this[_0x23e43a(0x2ad)][_0x23e43a(0x29b)]['x']=_0x324bcc[_0x23e43a(0x2e4)][_0x23e43a(0x207)],this[_0x23e43a(0x2ad)][_0x23e43a(0x29b)]['y']=_0x324bcc[_0x23e43a(0x2e4)][_0x23e43a(0x1d8)],this[_0x23e43a(0x2ad)]['latRange']['x']=_0x324bcc[_0x23e43a(0x31a)]['min'],this[_0x23e43a(0x2ad)][_0x23e43a(0x265)]['y']=_0x324bcc[_0x23e43a(0x31a)][_0x23e43a(0x1d8)];var _0x538503=this['camera'][_0x23e43a(0x33c)](this[_0x23e43a(0x2dc)],this[_0x23e43a(0x28c)]['drawingBufferWidth'],this['scene'][_0x23e43a(0x2da)]);_0x538503>0x0&&(this[_0x23e43a(0x2ad)][_0x23e43a(0x24c)]=_0x538503);}}]),_0x198b3d;}(BaseLayer$1);function _0xc0df(_0x5ce797,_0x25e26c){var _0x3449b3=_0x3449();return _0xc0df=function(_0xc0df76,_0x5042e6){_0xc0df76=_0xc0df76-0x1cd;var _0x4593c6=_0x3449b3[_0xc0df76];return _0x4593c6;},_0xc0df(_0x5ce797,_0x25e26c);}mars3d__namespace['LayerUtil'][_0x286424(0x20d)](_0x286424(0x28d),WindLayer),mars3d__namespace[_0x286424(0x2d0)]['WindLayer']=WindLayer;var CanvasParticle=(function(){function _0x1c7d99(){var _0x53a211=_0xc0df;_classCallCheck(this,_0x1c7d99),this[_0x53a211(0x223)]=null,this[_0x53a211(0x31a)]=null,this[_0x53a211(0x329)]=null,this[_0x53a211(0x27d)]=null,this[_0x53a211(0x22e)]=null;}return _createClass(_0x1c7d99,[{'key':'destroy','value':function _0x57d78d(){for(var _0x29bcdb in this){delete this[_0x29bcdb];}}}]),_0x1c7d99;}()),CanvasWindField=(function(){var _0xe1fa3a=_0x286424;function _0xff6250(_0x49078f){_classCallCheck(this,_0xff6250),this['setOptions'](_0x49078f);}return _createClass(_0xff6250,[{'key':_0xe1fa3a(0x215),'get':function _0x48cf0c(){var _0xdf784f=_0xe1fa3a;return this[_0xdf784f(0x2f5)];},'set':function _0x3c0bff(_0x26eafa){var _0x3dceb8=_0xe1fa3a;this[_0x3dceb8(0x2f5)]=(0x64-(_0x26eafa>0x63?0x63:_0x26eafa))*0x64,this[_0x3dceb8(0x27b)]=[(this[_0x3dceb8(0x1d6)]-this[_0x3dceb8(0x1cf)])/this[_0x3dceb8(0x2f5)],(this[_0x3dceb8(0x28e)]-this[_0x3dceb8(0x2ee)])/this[_0x3dceb8(0x2f5)]];}},{'key':_0xe1fa3a(0x308),'get':function _0x22b7ca(){return this['_maxAge'];},'set':function _0x487914(_0x2c053c){var _0xe142a=_0xe1fa3a;this[_0xe142a(0x1dc)]=_0x2c053c;}},{'key':'setOptions','value':function _0x4fdbc1(_0x4518e1){var _0x5e5a72=_0xe1fa3a;this[_0x5e5a72(0x1df)]=_0x4518e1,this[_0x5e5a72(0x308)]=_0x4518e1[_0x5e5a72(0x308)]||0x78,this[_0x5e5a72(0x215)]=_0x4518e1[_0x5e5a72(0x215)]||0x32,this[_0x5e5a72(0x203)]=[];var _0x2a15fe=_0x4518e1[_0x5e5a72(0x303)]||0x1000;for(var _0x20c612=0x0;_0x20c612<_0x2a15fe;_0x20c612++){var _0x92edd4=this[_0x5e5a72(0x25d)](new CanvasParticle());this[_0x5e5a72(0x203)][_0x5e5a72(0x280)](_0x92edd4);}}},{'key':_0xe1fa3a(0x290),'value':function _0x566a30(_0x5bc02d){var _0x4fed0c=_0xe1fa3a;this['rows']=_0x5bc02d[_0x4fed0c(0x2de)],this[_0x4fed0c(0x2b1)]=_0x5bc02d[_0x4fed0c(0x2b1)],this[_0x4fed0c(0x1cf)]=_0x5bc02d[_0x4fed0c(0x1cf)],this[_0x4fed0c(0x1d6)]=_0x5bc02d[_0x4fed0c(0x1d6)],this[_0x4fed0c(0x2ee)]=_0x5bc02d['ymin'],this['ymax']=_0x5bc02d[_0x4fed0c(0x28e)],this[_0x4fed0c(0x238)]=[];var _0x1d424e=_0x5bc02d['udata'],_0x2f4f98=_0x5bc02d[_0x4fed0c(0x219)],_0x347d08=![];_0x1d424e[_0x4fed0c(0x319)]===this['rows']&&_0x1d424e[0x0][_0x4fed0c(0x319)]===this[_0x4fed0c(0x2b1)]&&(_0x347d08=!![]);var _0x573023=0x0,_0x8c264d=null,_0x25c9bf=null;for(var _0x8c2a30=0x0;_0x8c2a30<this[_0x4fed0c(0x2de)];_0x8c2a30++){_0x8c264d=[];for(var _0x4826eb=0x0;_0x4826eb<this[_0x4fed0c(0x2b1)];_0x4826eb++,_0x573023++){_0x347d08?_0x25c9bf=this[_0x4fed0c(0x1e5)](_0x1d424e[_0x8c2a30][_0x4826eb],_0x2f4f98[_0x8c2a30][_0x4826eb]):_0x25c9bf=this[_0x4fed0c(0x1e5)](_0x1d424e[_0x573023],_0x2f4f98[_0x573023]),_0x8c264d[_0x4fed0c(0x280)](_0x25c9bf);}this[_0x4fed0c(0x238)][_0x4fed0c(0x280)](_0x8c264d);}this[_0x4fed0c(0x1df)][_0x4fed0c(0x21c)]&&this[_0x4fed0c(0x238)]['reverse']();}},{'key':_0xe1fa3a(0x2c7),'value':function _0x263112(){var _0x17651b=_0xe1fa3a;delete this['rows'],delete this[_0x17651b(0x2b1)],delete this['xmin'],delete this[_0x17651b(0x1d6)],delete this[_0x17651b(0x2ee)],delete this['ymax'],delete this[_0x17651b(0x238)],delete this[_0x17651b(0x203)];}},{'key':'toGridXY','value':function _0x4109be(_0x11f623,_0x3d5ab6){var _0x3ca9c2=_0xe1fa3a,_0x5a592a=(_0x11f623-this[_0x3ca9c2(0x1cf)])/(this[_0x3ca9c2(0x1d6)]-this[_0x3ca9c2(0x1cf)])*(this[_0x3ca9c2(0x2b1)]-0x1),_0x598f1a=(this['ymax']-_0x3d5ab6)/(this['ymax']-this[_0x3ca9c2(0x2ee)])*(this[_0x3ca9c2(0x2de)]-0x1);return[_0x5a592a,_0x598f1a];}},{'key':_0xe1fa3a(0x2c2),'value':function _0x264dee(_0x49ec40,_0xca5a6){var _0x275c67=_0xe1fa3a;if(_0x49ec40<0x0||_0x49ec40>=this[_0x275c67(0x2b1)]||_0xca5a6>=this[_0x275c67(0x2de)])return[0x0,0x0,0x0];var _0x50e491=Math[_0x275c67(0x33a)](_0x49ec40),_0x2cb926=Math[_0x275c67(0x33a)](_0xca5a6);if(_0x50e491===_0x49ec40&&_0x2cb926===_0xca5a6)return this[_0x275c67(0x238)][_0xca5a6][_0x49ec40];var _0x24b951=_0x50e491+0x1,_0x57b208=_0x2cb926+0x1,_0x1cf777=this[_0x275c67(0x2c2)](_0x50e491,_0x2cb926),_0x2b3bd3=this[_0x275c67(0x2c2)](_0x24b951,_0x2cb926),_0x19165e=this[_0x275c67(0x2c2)](_0x50e491,_0x57b208),_0xed9e80=this[_0x275c67(0x2c2)](_0x24b951,_0x57b208),_0x4cf23b=null;try{_0x4cf23b=this[_0x275c67(0x248)](_0x49ec40-_0x50e491,_0xca5a6-_0x2cb926,_0x1cf777,_0x2b3bd3,_0x19165e,_0xed9e80);}catch(_0x259727){console[_0x275c67(0x20a)](_0x49ec40,_0xca5a6);}return _0x4cf23b;}},{'key':_0xe1fa3a(0x248),'value':function _0x5f2f80(_0xfa1047,_0x386870,_0x41859e,_0x4de592,_0x545520,_0x187812){var _0x570644=_0xe1fa3a,_0x46ee22=0x1-_0xfa1047,_0x202989=0x1-_0x386870,_0x29554=_0x46ee22*_0x202989,_0x4764a8=_0xfa1047*_0x202989,_0x16fc13=_0x46ee22*_0x386870,_0x1dbb87=_0xfa1047*_0x386870,_0x6d8744=_0x41859e[0x0]*_0x29554+_0x4de592[0x0]*_0x4764a8+_0x545520[0x0]*_0x16fc13+_0x187812[0x0]*_0x1dbb87,_0x32719c=_0x41859e[0x1]*_0x29554+_0x4de592[0x1]*_0x4764a8+_0x545520[0x1]*_0x16fc13+_0x187812[0x1]*_0x1dbb87;return this[_0x570644(0x1e5)](_0x6d8744,_0x32719c);}},{'key':_0xe1fa3a(0x1e5),'value':function _0x55aed5(_0x1944bf,_0x4ba7c){return[+_0x1944bf,+_0x4ba7c,Math['sqrt'](_0x1944bf*_0x1944bf+_0x4ba7c*_0x4ba7c)];}},{'key':'getUVByPoint','value':function _0xdb0d3e(_0x561e42,_0x4ef365){var _0x72fd10=_0xe1fa3a;if(!this[_0x72fd10(0x326)](_0x561e42,_0x4ef365))return null;var _0x22e558=this['toGridXY'](_0x561e42,_0x4ef365),_0x9cfc26=this['getUVByXY'](_0x22e558[0x0],_0x22e558[0x1]);return _0x9cfc26;}},{'key':_0xe1fa3a(0x326),'value':function _0xd0acae(_0x5d7dba,_0x39c056){var _0x59ad94=_0xe1fa3a;return _0x5d7dba>=this[_0x59ad94(0x1cf)]&&_0x5d7dba<=this[_0x59ad94(0x1d6)]&&_0x39c056>=this['ymin']&&_0x39c056<=this[_0x59ad94(0x28e)]?!![]:![];}},{'key':_0xe1fa3a(0x2e1),'value':function _0x269126(){var _0x153e65=_0xe1fa3a,_0x538775=fRandomByfloat(this[_0x153e65(0x1cf)],this[_0x153e65(0x1d6)]),_0x3de5c8=fRandomByfloat(this[_0x153e65(0x2ee)],this[_0x153e65(0x28e)]);return{'lat':_0x3de5c8,'lng':_0x538775};}},{'key':_0xe1fa3a(0x204),'value':function _0x450555(){var _0x3d7426=_0xe1fa3a,_0x3588ec,_0x22ef3d,_0x5f0128;for(var _0x34ec2d=0x0,_0xdaa93f=this[_0x3d7426(0x203)][_0x3d7426(0x319)];_0x34ec2d<_0xdaa93f;_0x34ec2d++){var _0x5acb27=this[_0x3d7426(0x203)][_0x34ec2d];_0x5acb27[_0x3d7426(0x22e)]<=0x0&&(_0x5acb27=this[_0x3d7426(0x25d)](_0x5acb27));if(_0x5acb27[_0x3d7426(0x22e)]>0x0){var _0x5f0f45=_0x5acb27[_0x3d7426(0x329)],_0x22536a=_0x5acb27[_0x3d7426(0x27d)];_0x5f0128=this['getUVByPoint'](_0x5f0f45,_0x22536a),_0x5f0128?(_0x3588ec=_0x5f0f45+this[_0x3d7426(0x27b)][0x0]*_0x5f0128[0x0],_0x22ef3d=_0x22536a+this[_0x3d7426(0x27b)][0x1]*_0x5f0128[0x1],_0x5acb27[_0x3d7426(0x223)]=_0x5f0f45,_0x5acb27[_0x3d7426(0x31a)]=_0x22536a,_0x5acb27[_0x3d7426(0x329)]=_0x3588ec,_0x5acb27[_0x3d7426(0x27d)]=_0x22ef3d,_0x5acb27[_0x3d7426(0x22e)]--):_0x5acb27[_0x3d7426(0x22e)]=0x0;}}return this[_0x3d7426(0x203)];}},{'key':'_randomParticle','value':function _0x3faf86(_0x1484c7){var _0x760065=_0xe1fa3a,_0x404bf0,_0x527925;for(var _0x577791=0x0;_0x577791<0x1e;_0x577791++){_0x404bf0=this['getRandomLatLng'](),_0x527925=this[_0x760065(0x2a7)](_0x404bf0[_0x760065(0x223)],_0x404bf0[_0x760065(0x31a)]);if(_0x527925&&_0x527925[0x2]>0x0)break;}if(!_0x527925)return _0x1484c7;var _0x552d6b=_0x404bf0[_0x760065(0x223)]+this[_0x760065(0x27b)][0x0]*_0x527925[0x0],_0x29bf94=_0x404bf0[_0x760065(0x31a)]+this[_0x760065(0x27b)][0x1]*_0x527925[0x1];return _0x1484c7[_0x760065(0x223)]=_0x404bf0['lng'],_0x1484c7[_0x760065(0x31a)]=_0x404bf0[_0x760065(0x31a)],_0x1484c7[_0x760065(0x329)]=_0x552d6b,_0x1484c7[_0x760065(0x27d)]=_0x29bf94,_0x1484c7[_0x760065(0x22e)]=Math['round'](Math[_0x760065(0x214)]()*this[_0x760065(0x308)]),_0x1484c7;}},{'key':_0xe1fa3a(0x2ef),'value':function _0x52e238(){for(var _0x378eba in this){delete this[_0x378eba];}}}]),_0xff6250;}());function fRandomByfloat(_0x13a887,_0x2c7e3f){var _0x35eb59=_0x286424;return _0x13a887+Math[_0x35eb59(0x214)]()*(_0x2c7e3f-_0x13a887);}var Cesium=mars3d__namespace['Cesium'],BaseLayer=mars3d__namespace[_0x286424(0x2d0)][_0x286424(0x260)],CanvasWindLayer=function(_0x43f7fe){var _0x1d81d2=_0x286424;_inherits(_0x4c21e8,_0x43f7fe);var _0x56a075=_createSuper(_0x4c21e8);function _0x4c21e8(){var _0x8daad4=_0xc0df,_0x52270f,_0x9482a9=arguments[_0x8daad4(0x319)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};return _classCallCheck(this,_0x4c21e8),_0x52270f=_0x56a075[_0x8daad4(0x2c8)](this,_0x9482a9),_0x52270f[_0x8daad4(0x30a)](_0x9482a9),_0x52270f[_0x8daad4(0x2c3)]=null,_0x52270f;}return _createClass(_0x4c21e8,[{'key':_0x1d81d2(0x30a),'value':function _0xedbe00(_0x5499c3,_0x3d5f41){var _0x45dfe2=_0x1d81d2,_0x45f96e,_0x533e04,_0x34845b;this[_0x45dfe2(0x1f1)]=0x3e8/(_0x5499c3[_0x45dfe2(0x276)]||0xa),this[_0x45dfe2(0x1e9)]=(_0x45f96e=this[_0x45dfe2(0x1df)][_0x45dfe2(0x25c)])!==null&&_0x45f96e!==void 0x0?_0x45f96e:![],this[_0x45dfe2(0x2d3)]=_0x5499c3[_0x45dfe2(0x2d3)]||_0x45dfe2(0x33d),this[_0x45dfe2(0x24e)]=_0x5499c3[_0x45dfe2(0x24e)]||0x1,this[_0x45dfe2(0x21f)]=(_0x533e04=_0x5499c3[_0x45dfe2(0x21f)])!==null&&_0x533e04!==void 0x0?_0x533e04:0x0,this[_0x45dfe2(0x21c)]=(_0x34845b=_0x5499c3[_0x45dfe2(0x21c)])!==null&&_0x34845b!==void 0x0?_0x34845b:![],this[_0x45dfe2(0x2e8)]&&this[_0x45dfe2(0x2e8)][_0x45dfe2(0x2bb)](_0x5499c3);}},{'key':_0x1d81d2(0x2d0),'get':function _0x4ba5cc(){return this['canvas'];}},{'key':_0x1d81d2(0x27e),'get':function _0x4d6f09(){var _0x1e8dd1=_0x1d81d2;return this[_0x1e8dd1(0x33e)][_0x1e8dd1(0x28c)][_0x1e8dd1(0x2c3)][_0x1e8dd1(0x245)];}},{'key':_0x1d81d2(0x242),'get':function _0x365f3d(){var _0xc447f0=_0x1d81d2;return this[_0xc447f0(0x33e)][_0xc447f0(0x28c)][_0xc447f0(0x2c3)][_0xc447f0(0x253)];}},{'key':_0x1d81d2(0x25c),'get':function _0x53978c(){var _0x338fca=_0x1d81d2;return this[_0x338fca(0x1e9)];},'set':function _0x285741(_0x125da4){var _0x2636da=_0x1d81d2;this[_0x2636da(0x1e9)]=_0x125da4;if(!this[_0x2636da(0x2c3)])return;_0x125da4?this['canvas'][_0x2636da(0x287)][_0x2636da(0x32a)]=_0x2636da(0x21d):this[_0x2636da(0x2c3)][_0x2636da(0x287)][_0x2636da(0x32a)]=_0x2636da(0x2a9);}},{'key':'particlesNumber','get':function _0x55f0c2(){var _0x1b37de=_0x1d81d2;return this[_0x1b37de(0x1df)]['particlesNumber'];},'set':function _0x59250e(_0x55fda1){var _0x58842d=_0x1d81d2,_0xefc27=this;this['options']['particlesNumber']=_0x55fda1,clearTimeout(this[_0x58842d(0x256)]),this[_0x58842d(0x256)]=setTimeout(function(){var _0x366d5b=_0x58842d;_0xefc27[_0x366d5b(0x2f3)]();},0x1f4);}},{'key':_0x1d81d2(0x215),'get':function _0x26e160(){var _0x3bb3dc=_0x1d81d2;return this[_0x3bb3dc(0x1df)][_0x3bb3dc(0x215)];},'set':function _0x32789c(_0x2901c0){var _0x1de32b=_0x1d81d2;this[_0x1de32b(0x1df)][_0x1de32b(0x215)]=_0x2901c0,this[_0x1de32b(0x2e8)]&&(this[_0x1de32b(0x2e8)]['speedRate']=_0x2901c0);}},{'key':_0x1d81d2(0x308),'get':function _0x400d50(){var _0x543bc0=_0x1d81d2;return this[_0x543bc0(0x1df)]['maxAge'];},'set':function _0x2ec240(_0x2ad320){var _0x22f351=_0x1d81d2;this[_0x22f351(0x1df)]['maxAge']=_0x2ad320,this[_0x22f351(0x2e8)]&&(this[_0x22f351(0x2e8)][_0x22f351(0x308)]=_0x2ad320);}},{'key':_0x1d81d2(0x1ee),'get':function _0x5a259c(){var _0x57ea77=_0x1d81d2;return this[_0x57ea77(0x2cb)];},'set':function _0x210fa4(_0x3d0b90){var _0x95b20e=_0x1d81d2;this[_0x95b20e(0x2e7)](_0x3d0b90);}},{'key':_0x1d81d2(0x234),'value':function _0x4add8f(_0xc2b02){var _0x2c99e2=_0x1d81d2;_0xc2b02?this['_addedHook']():(this[_0x2c99e2(0x2cb)]&&(this[_0x2c99e2(0x1df)][_0x2c99e2(0x1ee)]=this[_0x2c99e2(0x2cb)]),this[_0x2c99e2(0x274)]());}},{'key':'_mountedHook','value':function _0x595eb0(){var _0x57fe88=_0x1d81d2;this[_0x57fe88(0x1df)]['worker']?this[_0x57fe88(0x226)]():this['windField']=new CanvasWindField(this[_0x57fe88(0x1df)]);}},{'key':'_addedHook','value':function _0x313188(){var _0x4135f3=_0x1d81d2;this['canvas']=this[_0x4135f3(0x348)](),this[_0x4135f3(0x1ef)]=this[_0x4135f3(0x2c3)]['getContext']('2d',{'willReadFrequently':!![]}),this[_0x4135f3(0x315)](),this[_0x4135f3(0x1df)]['data']&&this[_0x4135f3(0x2e7)](this[_0x4135f3(0x1df)][_0x4135f3(0x1ee)]);}},{'key':'_removedHook','value':function _0x2e8bde(){var _0x1913a9=_0x1d81d2;this['clear'](),this[_0x1913a9(0x27a)](),this[_0x1913a9(0x2c3)]&&(this[_0x1913a9(0x33e)][_0x1913a9(0x295)][_0x1913a9(0x336)](this[_0x1913a9(0x2c3)]),delete this['canvas']);}},{'key':_0x1d81d2(0x348),'value':function _0x4e788a(){var _0x3885ab=_0x1d81d2,_0xc708a4=document[_0x3885ab(0x1e4)](_0x3885ab(0x2c3));_0xc708a4[_0x3885ab(0x287)][_0x3885ab(0x32e)]=_0x3885ab(0x217),_0xc708a4[_0x3885ab(0x287)]['top']=_0x3885ab(0x2f7),_0xc708a4[_0x3885ab(0x287)][_0x3885ab(0x2d9)]=_0x3885ab(0x2f7),_0xc708a4[_0x3885ab(0x287)][_0x3885ab(0x32b)]='100%',_0xc708a4['style']['height']='100%',_0xc708a4[_0x3885ab(0x287)][_0x3885ab(0x25c)]=this[_0x3885ab(0x1e9)]?_0x3885ab(0x286):'none',_0xc708a4['style'][_0x3885ab(0x20e)]=0xa,_0xc708a4['setAttribute']('id',_0x3885ab(0x2b0)),_0xc708a4[_0x3885ab(0x23a)](_0x3885ab(0x1fa),_0x3885ab(0x2b0)),this[_0x3885ab(0x33e)][_0x3885ab(0x295)][_0x3885ab(0x30e)](_0xc708a4);var _0x373056=this[_0x3885ab(0x33e)][_0x3885ab(0x28c)];return _0xc708a4['width']=_0x373056[_0x3885ab(0x2c3)][_0x3885ab(0x245)],_0xc708a4[_0x3885ab(0x2dd)]=_0x373056[_0x3885ab(0x2c3)][_0x3885ab(0x253)],_0xc708a4;}},{'key':'resize','value':function _0x222580(){var _0x54bb40=_0x1d81d2;this[_0x54bb40(0x2c3)]&&(this[_0x54bb40(0x2c3)][_0x54bb40(0x32b)]=this['canvasWidth'],this[_0x54bb40(0x2c3)][_0x54bb40(0x2dd)]=this['canvasHeight']);}},{'key':'bindEvent','value':function _0x20ae2c(){var _0x4545b6=_0x1d81d2,_0x5b3807=this,_0x379c62=Date[_0x4545b6(0x1f5)]();(function _0x262c9d(){var _0x27ca5b=_0x4545b6;_0x5b3807[_0x27ca5b(0x31c)]=window[_0x27ca5b(0x231)](_0x262c9d);if(_0x5b3807[_0x27ca5b(0x25b)]&&_0x5b3807[_0x27ca5b(0x2e8)]){var _0x2ef6ad=Date[_0x27ca5b(0x1f5)](),_0x14b97f=_0x2ef6ad-_0x379c62;_0x14b97f>_0x5b3807['frameTime']&&(_0x379c62=_0x2ef6ad-_0x14b97f%_0x5b3807['frameTime'],_0x5b3807[_0x27ca5b(0x25a)]());}}(),window[_0x4545b6(0x26f)](_0x4545b6(0x22a),this[_0x4545b6(0x22a)][_0x4545b6(0x202)](this),![]),this['mouse_down']=![],this[_0x4545b6(0x31d)]=![],this[_0x4545b6(0x1df)][_0x4545b6(0x254)]&&(this[_0x4545b6(0x33e)]['on'](mars3d__namespace[_0x4545b6(0x2be)][_0x4545b6(0x2b2)],this[_0x4545b6(0x1f6)],this),this[_0x4545b6(0x33e)]['on'](mars3d__namespace[_0x4545b6(0x2be)][_0x4545b6(0x2a3)],this[_0x4545b6(0x1d4)],this),this[_0x4545b6(0x33e)]['on'](mars3d__namespace[_0x4545b6(0x2be)]['mouseUp'],this[_0x4545b6(0x257)],this)));}},{'key':_0x1d81d2(0x27a),'value':function _0x2d6f86(){var _0x2709ad=_0x1d81d2;window['cancelAnimationFrame'](this[_0x2709ad(0x31c)]),delete this[_0x2709ad(0x31c)],window['removeEventListener'](_0x2709ad(0x22a),this[_0x2709ad(0x22a)]),this[_0x2709ad(0x1df)][_0x2709ad(0x254)]&&(this[_0x2709ad(0x33e)]['off'](mars3d__namespace[_0x2709ad(0x2be)][_0x2709ad(0x2b2)],this['_onMapWhellEvent'],this),this[_0x2709ad(0x33e)]['off'](mars3d__namespace[_0x2709ad(0x2be)][_0x2709ad(0x2a3)],this[_0x2709ad(0x1d4)],this),this[_0x2709ad(0x33e)][_0x2709ad(0x211)](mars3d__namespace['EventType'][_0x2709ad(0x2a1)],this[_0x2709ad(0x257)],this),this[_0x2709ad(0x33e)][_0x2709ad(0x211)](mars3d__namespace[_0x2709ad(0x2be)][_0x2709ad(0x285)],this['_onMouseMoveEvent'],this));}},{'key':_0x1d81d2(0x1f6),'value':function _0x4258f4(_0x5303af){var _0x2fb6f8=_0x1d81d2,_0x4ec7dd=this;clearTimeout(this[_0x2fb6f8(0x2e3)]);if(!this['show']||!this[_0x2fb6f8(0x2c3)])return;this['canvas'][_0x2fb6f8(0x287)][_0x2fb6f8(0x228)]=_0x2fb6f8(0x2b6),this[_0x2fb6f8(0x2e3)]=setTimeout(function(){var _0x4d201f=_0x2fb6f8;if(!_0x4ec7dd[_0x4d201f(0x25b)])return;_0x4ec7dd[_0x4d201f(0x2f3)](),_0x4ec7dd[_0x4d201f(0x2c3)][_0x4d201f(0x287)]['visibility']=_0x4d201f(0x237);},0xc8);}},{'key':_0x1d81d2(0x1d4),'value':function _0x4edc1a(_0x90f02a){var _0x3bde92=_0x1d81d2;this['mouse_down']=!![],this['_map'][_0x3bde92(0x211)](mars3d__namespace['EventType'][_0x3bde92(0x285)],this[_0x3bde92(0x1e6)],this),this['_map']['on'](mars3d__namespace[_0x3bde92(0x2be)][_0x3bde92(0x285)],this[_0x3bde92(0x1e6)],this);}},{'key':_0x1d81d2(0x1e6),'value':function _0x55e016(_0x45f445){var _0x4085db=_0x1d81d2;if(!this['show']||!this['canvas'])return;this[_0x4085db(0x2bc)]&&(this[_0x4085db(0x2c3)]['style']['visibility']=_0x4085db(0x2b6),this['mouse_move']=!![]);}},{'key':_0x1d81d2(0x257),'value':function _0x1fc6bd(_0x29ff04){var _0x48060b=_0x1d81d2;if(!this['show']||!this[_0x48060b(0x2c3)])return;this['_map']['off'](mars3d__namespace[_0x48060b(0x2be)][_0x48060b(0x285)],this[_0x48060b(0x1e6)],this),this[_0x48060b(0x2bc)]&&this[_0x48060b(0x31d)]&&this[_0x48060b(0x2f3)](),this[_0x48060b(0x2c3)][_0x48060b(0x287)][_0x48060b(0x228)]=_0x48060b(0x237),this[_0x48060b(0x2bc)]=![],this[_0x48060b(0x31d)]=![];}},{'key':'setData','value':function _0x167e4d(_0x22d552){var _0x337b36=_0x1d81d2;this[_0x337b36(0x2c7)](),this['windData']=_0x22d552,this['windField'][_0x337b36(0x290)](_0x22d552),this[_0x337b36(0x2f3)]();}},{'key':_0x1d81d2(0x2f3),'value':function _0x40daef(){var _0x1a9d72=_0x1d81d2;if(!this[_0x1a9d72(0x25b)])return;this['windField'][_0x1a9d72(0x2bb)](this[_0x1a9d72(0x1df)]),this['update']();}},{'key':_0x1d81d2(0x25a),'value':function _0x4769c5(){var _0x3e93a7=_0x1d81d2;if(this[_0x3e93a7(0x258)])return;this[_0x3e93a7(0x258)]=!![];if(this[_0x3e93a7(0x1da)])this[_0x3e93a7(0x2e8)]['update']();else{var _0x33b75c=this[_0x3e93a7(0x2e8)][_0x3e93a7(0x204)]();this[_0x3e93a7(0x27f)](_0x33b75c);}this[_0x3e93a7(0x258)]=![];}},{'key':'_drawLines','value':function _0x2ef108(_0x460902){var _0x12dd00=_0x1d81d2;this[_0x12dd00(0x1ef)]['globalCompositeOperation']=_0x12dd00(0x225),this[_0x12dd00(0x1ef)]['fillRect'](0x0,0x0,this[_0x12dd00(0x27e)],this[_0x12dd00(0x242)]),this[_0x12dd00(0x1ef)]['globalCompositeOperation']=_0x12dd00(0x2d8),this[_0x12dd00(0x1ef)][_0x12dd00(0x29f)]=0.9,this[_0x12dd00(0x1ef)][_0x12dd00(0x2f6)](),this['canvasContext'][_0x12dd00(0x24e)]=this[_0x12dd00(0x24e)],this['canvasContext'][_0x12dd00(0x27c)]=this[_0x12dd00(0x2d3)];var _0x1bc001=this[_0x12dd00(0x33e)]['scene']['mode']!==Cesium[_0x12dd00(0x2c5)]['SCENE3D'];for(var _0x64a10b=0x0,_0x49218d=_0x460902[_0x12dd00(0x319)];_0x64a10b<_0x49218d;_0x64a10b++){var _0x21b534=_0x460902[_0x64a10b],_0xf8dfc2=this['_tomap'](_0x21b534[_0x12dd00(0x223)],_0x21b534[_0x12dd00(0x31a)],_0x21b534),_0x1f972b=this['_tomap'](_0x21b534[_0x12dd00(0x329)],_0x21b534[_0x12dd00(0x27d)],_0x21b534);if(!_0xf8dfc2||!_0x1f972b)continue;if(_0x1bc001&&Math[_0x12dd00(0x297)](_0xf8dfc2[0x0]-_0x1f972b[0x0])>=this['canvasWidth'])continue;this['canvasContext']['moveTo'](_0xf8dfc2[0x0],_0xf8dfc2[0x1]),this['canvasContext']['lineTo'](_0x1f972b[0x0],_0x1f972b[0x1]);}this[_0x12dd00(0x1ef)]['stroke']();}},{'key':_0x1d81d2(0x31e),'value':function _0x3bf2ce(_0x577c61,_0x2eaa86,_0x3d9fba){var _0x368cef=_0x1d81d2,_0x479cec=Cesium[_0x368cef(0x2b8)][_0x368cef(0x233)](_0x577c61,_0x2eaa86,this['fixedHeight']),_0x3d1bc6=this[_0x368cef(0x33e)]['scene'];if(_0x3d1bc6[_0x368cef(0x1e1)]===Cesium[_0x368cef(0x2c5)]['SCENE3D']){var _0x5e401d=new Cesium[(_0x368cef(0x1ea))](_0x3d1bc6[_0x368cef(0x30b)]['ellipsoid'],_0x3d1bc6[_0x368cef(0x212)][_0x368cef(0x259)]),_0x43717d=_0x5e401d[_0x368cef(0x1de)](_0x479cec);if(!_0x43717d)return _0x3d9fba['age']=0x0,null;}var _0x36eb1f=Cesium[_0x368cef(0x20b)]['wgs84ToWindowCoordinates'](this[_0x368cef(0x33e)][_0x368cef(0x28c)],_0x479cec);return _0x36eb1f?[_0x36eb1f['x'],_0x36eb1f['y']]:null;}},{'key':_0x1d81d2(0x2c7),'value':function _0x401df3(){var _0x2c6e3f=_0x1d81d2;this[_0x2c6e3f(0x2e8)][_0x2c6e3f(0x2c7)](),delete this['windData'];}},{'key':_0x1d81d2(0x226),'value':function _0x39a779(){var _0x133906=_0x1d81d2,_0x62e791=this;this['worker']=new Worker(this[_0x133906(0x1df)][_0x133906(0x1da)]),this[_0x133906(0x1da)][_0x133906(0x304)]=function(_0x428f51){var _0x1f3aa4=_0x133906;_0x62e791[_0x1f3aa4(0x27f)](_0x428f51['data']['particles']),_0x62e791[_0x1f3aa4(0x1fb)]=![];},this[_0x133906(0x2e8)]={'init':function _0x5d674e(_0x596161){var _0x352036=_0x133906;_0x62e791['worker'][_0x352036(0x2fa)]({'type':_0x352036(0x2ca),'options':_0x596161});},'setOptions':function _0xa0644c(_0x8dfde0){var _0x4ef7bc=_0x133906;_0x62e791[_0x4ef7bc(0x1da)][_0x4ef7bc(0x2fa)]({'type':_0x4ef7bc(0x2bb),'options':_0x8dfde0});},'setDate':function _0x47f2ed(_0x4f9754){var _0x4114a8=_0x133906;_0x62e791['worker'][_0x4114a8(0x2fa)]({'type':_0x4114a8(0x290),'data':_0x4f9754});},'update':function _0x55185d(){var _0x842705=_0x133906;if(_0x62e791[_0x842705(0x1fb)])return;_0x62e791['_updateIng2']=!![],_0x62e791[_0x842705(0x1da)][_0x842705(0x2fa)]({'type':'update'});},'clear':function _0x12a0a7(){var _0x19bd38=_0x133906;_0x62e791['worker']['postMessage']({'type':_0x19bd38(0x2c7)});}},this[_0x133906(0x2e8)]['init'](this[_0x133906(0x1df)]);}}]),_0x4c21e8;}(BaseLayer);mars3d__namespace[_0x286424(0x299)]['register']('canvasWind',CanvasWindLayer),mars3d__namespace[_0x286424(0x2d0)][_0x286424(0x279)]=CanvasWindLayer,mars3d__namespace[_0x286424(0x2af)]=CanvasWindField,mars3d__namespace[_0x286424(0x21a)]=WindUtil,exports[_0x286424(0x2af)]=CanvasWindField,exports[_0x286424(0x279)]=CanvasWindLayer,exports['WindLayer']=WindLayer,exports[_0x286424(0x21a)]=WindUtil,Object[_0x286424(0x230)](exports,_0x286424(0x1d1),{'value':!![]});
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':!![]});
15
15
  }));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mars3d-wind",
3
- "version": "3.4.17",
3
+ "version": "3.4.18",
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.17"
11
+ "mars3d": "~3.4.18"
12
12
  },
13
13
  "scripts": {
14
14
  "lint": "eslint ./src/**/*.{js,ts} --fix"