园林绿化
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

15 lines
90 KiB

/**
* Mars3D平台插件,支持气象 风向图 功能插件 mars3d-wind
*
* 版本信息:v3.4.26
* 编译日期:2023-11-13 20:28:33
* 版权所有:Copyright by 火星科技 http://mars3d.cn
* 使用单位:免费公开版 ,2022-06-01
*/
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, (window.mars3d || require('mars3d'))) :
typeof define === 'function' && define.amd ? define(['exports', 'mars3d'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["mars3d-wind"] = {}, global.mars3d));
})(this, (function (exports, mars3d) {
'use strict';var _0x272d26=_0x3e3a;(function(_0x3ce9ae,_0xc66be6){var _0x122854=_0x3e3a,_0x142a1e=_0x3ce9ae();while(!![]){try{var _0xebeb2f=parseInt(_0x122854(0xee))/0x1*(parseInt(_0x122854(0xfd))/0x2)+parseInt(_0x122854(0x8b))/0x3*(-parseInt(_0x122854(0x125))/0x4)+-parseInt(_0x122854(0x10c))/0x5+parseInt(_0x122854(0xcc))/0x6*(-parseInt(_0x122854(0x150))/0x7)+parseInt(_0x122854(0xe3))/0x8*(parseInt(_0x122854(0x97))/0x9)+-parseInt(_0x122854(0x157))/0xa+parseInt(_0x122854(0x141))/0xb;if(_0xebeb2f===_0xc66be6)break;else _0x142a1e['push'](_0x142a1e['shift']());}catch(_0x32215b){_0x142a1e['push'](_0x142a1e['shift']());}}}(_0x3286,0x50d86));function _0x3286(){var _0x3aba5b=['RGBA','writable','_tomap','layer','Rectangle','createFramebuffer','color','particlesComputing','constructor','blending','removeEventListener','TRIANGLES','zIndex','getUVByPoint','xmin','globe','fadeOpacity','commandList','postProcessingPosition','arrayBufferView','log','lineWidth','currentParticlesSpeed','setData','fromDegrees','SCENE3D','getOwnPropertyDescriptor','Color','mode','currentParticlesPosition','postMessage','fromCache','DrawCommand','createTexture','canvasContext','1558878dhSJvC','keys','windField','windTextures','default','clearCommand','createSegmentsGeometry','resize','randomizeParticles','getUVByXY','fill','_updateIng2','speedRate','forEach','array','uniformMap','positionWC','camera','grid','setDate','applyViewerParameters','mouse_down','mouse_move','32FAIMxJ','getPixelSize','redraw','GeometryAttributes','xmax','RGB','undefined','PrimitiveType','setPrototypeOf','currentTrails','udata','81nuxzNH','Sampler','EventType','particles','toGridXY','PI_OVER_TWO','fixedHeight','construct','clear','rawRenderState','this\x20hasn\x27t\x20been\x20initialised\x20-\x20super()\x20hasn\x27t\x20been\x20called','PI_OVER_THREE','CanvasWindField','primitives','TWO_PI','6858XwMcMS','Math','vdata','add','particleHeight','globalCompositeOperation','fragmentShaderSource','Object','unbindEvent','toDegrees','canvasWidth','setOptions','textures','globalAlpha','dimensions','1246985FccLzo','bind','ymax','defined','red','source','_onMouseDownEvent','pow','sin','prototype','string','LUMINANCE','maxParticles','BaseLayer','latRange','createCommand','getOwnPropertySymbols','ymin','primitiveType','data','_updateIng','_canrefresh','Compute','outputTexture','Geometry','371732UBTUvq','preExecute','vmax','cos','particlesNumber','getRandomLatLng','TextureMagnificationFilter','getParticles','wheel','clampToLatitudeRange','clientHeight','context','sqrt','animateFrame','RenderState','atan2','create','_removedHook','framebuffers','length','LayerUtil','Cesium','pointer-events','mouseHidden','maxAge','canvasWind','viewerParameters','shaderProgram','16177238FEqpFG','drawingBufferWidth','attributeLocations','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}','push','vertexArray','PixelDatatype','max','_pointerEvents','_showHook','filter','isDestroyed','update','_onMapWhellEvent','remove','14hqRgVw','apply','_calc_speedRate','scene','lev','WindUtil','isPointVisible','2763090YZMwTY','pointerEvents','refreshParticles','colorTable','lat','position','Invalid\x20attempt\x20to\x20spread\x20non-iterable\x20instance.\x0aIn\x20order\x20to\x20be\x20iterable,\x20non-array\x20objects\x20must\x20have\x20a\x20[Symbol.iterator]()\x20method.','particlesTextures','cols','OPAQUE','_calcUV','stroke','commandToExecute','autoClear','beginPath','_onMouseMoveEvent','Cartesian2','tlat','depthTest','defineProperty','Pass','speedFactor','updateSpeed','segmentsColor','lng','tlng','postProcessingSpeed','min','lonRange','hidden','ShaderSource','mouseDown','updatePosition','canvas','age','Draw','blue','createComputingPrimitives','style','particleSystem','_setOptionsHook','createRawRenderState','segments','_drawLines','width','mouseUp','depthTexture','destroy','pixelSize','PixelFormat','execute','15yGhLof','show','geometry','particlesRendering','DomUtil','segmentsDepth','nextParticlesSpeed','windData','options','//\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}','levmin','height','208647okVJKw','worker','function','Cannot\x20call\x20a\x20class\x20as\x20a\x20function','_map','green','preRender','SceneMode','visibility','random','all','framebuffer','rows','_createCanvas','trails','THREE_PI_OVER_TWO','off','FLOAT'];_0x3286=function(){return _0x3aba5b;};return _0x3286();}function _interopNamespace(_0x98ad66){if(_0x98ad66&&_0x98ad66['__esModule'])return _0x98ad66;var _0x2b7ff1=Object['create'](null);return _0x98ad66&&Object['keys'](_0x98ad66)['forEach'](function(_0x5e2168){var _0x2164eb=_0x3e3a;if(_0x5e2168!==_0x2164eb(0xd0)){var _0x119776=Object[_0x2164eb(0xc3)](_0x98ad66,_0x5e2168);Object['defineProperty'](_0x2b7ff1,_0x5e2168,_0x119776['get']?_0x119776:{'enumerable':!![],'get':function(){return _0x98ad66[_0x5e2168];}});}}),_0x2b7ff1['default']=_0x98ad66,_0x2b7ff1;}var mars3d__namespace=_interopNamespace(mars3d),Cesium$7=mars3d__namespace['Cesium'];function getU(_0x6817e4,_0x4c7235){var _0x2bd954=_0x3e3a,_0x3b7306=_0x6817e4*Math[_0x2bd954(0x128)](Cesium$7[_0x2bd954(0xfe)]['toRadians'](_0x4c7235));return _0x3b7306;}function getV(_0x2b0e8f,_0xe42beb){var _0x1e946e=_0x3e3a,_0x1e09c5=_0x2b0e8f*Math[_0x1e946e(0x114)](Cesium$7['Math']['toRadians'](_0xe42beb));return _0x1e09c5;}function _0x3e3a(_0x7a40fe,_0x3e520a){var _0x328657=_0x3286();return _0x3e3a=function(_0x3e3ade,_0x3a3b86){_0x3e3ade=_0x3e3ade-0x70;var _0x4191e0=_0x328657[_0x3e3ade];return _0x4191e0;},_0x3e3a(_0x7a40fe,_0x3e520a);}function getSpeed(_0x5db7dd,_0x1a0f48){var _0xbf1166=_0x3e3a,_0x17c073=Math['sqrt'](Math[_0xbf1166(0x113)](_0x5db7dd,0x2)+Math['pow'](_0x1a0f48,0x2));return _0x17c073;}function getDirection(_0x1d4ee3,_0x37567e){var _0x58a420=_0x3e3a,_0xeece49=Cesium$7['Math']['toDegrees'](Math[_0x58a420(0x134)](_0x37567e,_0x1d4ee3));return _0xeece49+=_0xeece49<0x0?0x168:0x0,_0xeece49;}var WindUtil={'__proto__':null,'getU':getU,'getV':getV,'getSpeed':getSpeed,'getDirection':getDirection};function ownKeys(_0x4df2e8,_0x33a803){var _0x225126=_0x3e3a,_0x837431=Object[_0x225126(0xcd)](_0x4df2e8);if(Object[_0x225126(0x11c)]){var _0x27f6d7=Object['getOwnPropertySymbols'](_0x4df2e8);_0x33a803&&(_0x27f6d7=_0x27f6d7[_0x225126(0x14b)](function(_0x1718a6){return Object['getOwnPropertyDescriptor'](_0x4df2e8,_0x1718a6)['enumerable'];})),_0x837431['push']['apply'](_0x837431,_0x27f6d7);}return _0x837431;}function _objectSpread2(_0x1dd5a0){var _0x52c7d3=_0x3e3a;for(var _0x217f34=0x1;_0x217f34<arguments[_0x52c7d3(0x138)];_0x217f34++){var _0x545550=null!=arguments[_0x217f34]?arguments[_0x217f34]:{};_0x217f34%0x2?ownKeys(Object(_0x545550),!0x0)[_0x52c7d3(0xd9)](function(_0x500996){_defineProperty(_0x1dd5a0,_0x500996,_0x545550[_0x500996]);}):Object['getOwnPropertyDescriptors']?Object['defineProperties'](_0x1dd5a0,Object['getOwnPropertyDescriptors'](_0x545550)):ownKeys(Object(_0x545550))['forEach'](function(_0x38bf66){Object['defineProperty'](_0x1dd5a0,_0x38bf66,Object['getOwnPropertyDescriptor'](_0x545550,_0x38bf66));});}return _0x1dd5a0;}function _classCallCheck(_0x207bc4,_0x457803){var _0x3d197a=_0x3e3a;if(!(_0x207bc4 instanceof _0x457803))throw new TypeError(_0x3d197a(0x9a));}function _defineProperties(_0x55ff40,_0x3c4809){var _0x5930b8=_0x3e3a;for(var _0x3c7d1d=0x0;_0x3c7d1d<_0x3c4809[_0x5930b8(0x138)];_0x3c7d1d++){var _0x6b9f10=_0x3c4809[_0x3c7d1d];_0x6b9f10['enumerable']=_0x6b9f10['enumerable']||![],_0x6b9f10['configurable']=!![];if('value'in _0x6b9f10)_0x6b9f10[_0x5930b8(0xaa)]=!![];Object[_0x5930b8(0x16a)](_0x55ff40,_0x6b9f10['key'],_0x6b9f10);}}function _createClass(_0x181ef1,_0x289b9b,_0x306e58){if(_0x289b9b)_defineProperties(_0x181ef1['prototype'],_0x289b9b);if(_0x306e58)_defineProperties(_0x181ef1,_0x306e58);return Object['defineProperty'](_0x181ef1,'prototype',{'writable':![]}),_0x181ef1;}function _defineProperty(_0x5bb343,_0x577ec7,_0x300f54){return _0x577ec7 in _0x5bb343?Object['defineProperty'](_0x5bb343,_0x577ec7,{'value':_0x300f54,'enumerable':!![],'configurable':!![],'writable':!![]}):_0x5bb343[_0x577ec7]=_0x300f54,_0x5bb343;}function _inherits(_0x23fee4,_0x4e4704){var _0x5dba13=_0x3e3a;if(typeof _0x4e4704!==_0x5dba13(0x99)&&_0x4e4704!==null)throw new TypeError('Super\x20expression\x20must\x20either\x20be\x20null\x20or\x20a\x20function');_0x23fee4['prototype']=Object[_0x5dba13(0x135)](_0x4e4704&&_0x4e4704['prototype'],{'constructor':{'value':_0x23fee4,'writable':!![],'configurable':!![]}}),Object['defineProperty'](_0x23fee4,'prototype',{'writable':![]});if(_0x4e4704)_setPrototypeOf(_0x23fee4,_0x4e4704);}function _getPrototypeOf(_0x3e8d74){var _0x11c0bc=_0x3e3a;return _getPrototypeOf=Object['setPrototypeOf']?Object['getPrototypeOf'][_0x11c0bc(0x10d)]():function _0x229399(_0x481dc3){return _0x481dc3['__proto__']||Object['getPrototypeOf'](_0x481dc3);},_getPrototypeOf(_0x3e8d74);}function _setPrototypeOf(_0x8e322c,_0x149001){var _0x10ddc0=_0x3e3a;return _setPrototypeOf=Object[_0x10ddc0(0xeb)]?Object['setPrototypeOf'][_0x10ddc0(0x10d)]():function _0x51e6d7(_0xb56c3f,_0x572d15){return _0xb56c3f['__proto__']=_0x572d15,_0xb56c3f;},_setPrototypeOf(_0x8e322c,_0x149001);}function _isNativeReflectConstruct(){var _0x1571ab=_0x3e3a;if(typeof Reflect===_0x1571ab(0xe9)||!Reflect[_0x1571ab(0xf5)])return![];if(Reflect[_0x1571ab(0xf5)]['sham'])return![];if(typeof Proxy==='function')return!![];try{return Boolean['prototype']['valueOf']['call'](Reflect['construct'](Boolean,[],function(){})),!![];}catch(_0x54c57e){return![];}}function _assertThisInitialized(_0x1ba097){var _0x4c77b1=_0x3e3a;if(_0x1ba097===void 0x0)throw new ReferenceError(_0x4c77b1(0xf8));return _0x1ba097;}function _possibleConstructorReturn(_0x2aa4af,_0x4cbb89){if(_0x4cbb89&&(typeof _0x4cbb89==='object'||typeof _0x4cbb89==='function'))return _0x4cbb89;else{if(_0x4cbb89!==void 0x0)throw new TypeError('Derived\x20constructors\x20may\x20only\x20return\x20object\x20or\x20undefined');}return _assertThisInitialized(_0x2aa4af);}function _createSuper(_0x36f8b7){var _0xe35bf9=_isNativeReflectConstruct();return function _0x36e754(){var _0x308e1c=_getPrototypeOf(_0x36f8b7),_0x368647;if(_0xe35bf9){var _0x54731b=_getPrototypeOf(this)['constructor'];_0x368647=Reflect['construct'](_0x308e1c,arguments,_0x54731b);}else _0x368647=_0x308e1c['apply'](this,arguments);return _possibleConstructorReturn(this,_0x368647);};}function _toConsumableArray(_0x1bd61){return _arrayWithoutHoles(_0x1bd61)||_iterableToArray(_0x1bd61)||_unsupportedIterableToArray(_0x1bd61)||_nonIterableSpread();}function _arrayWithoutHoles(_0x4c0c93){if(Array['isArray'](_0x4c0c93))return _arrayLikeToArray(_0x4c0c93);}function _iterableToArray(_0x3376ec){var _0xc4f839=_0x3e3a;if(typeof Symbol!==_0xc4f839(0xe9)&&_0x3376ec[Symbol['iterator']]!=null||_0x3376ec['@@iterator']!=null)return Array['from'](_0x3376ec);}function _unsupportedIterableToArray(_0x1bc26b,_0x6914a9){var _0x436ec4=_0x3e3a;if(!_0x1bc26b)return;if(typeof _0x1bc26b===_0x436ec4(0x116))return _arrayLikeToArray(_0x1bc26b,_0x6914a9);var _0x40c3f3=Object[_0x436ec4(0x115)]['toString']['call'](_0x1bc26b)['slice'](0x8,-0x1);if(_0x40c3f3===_0x436ec4(0x104)&&_0x1bc26b['constructor'])_0x40c3f3=_0x1bc26b[_0x436ec4(0xb1)]['name'];if(_0x40c3f3==='Map'||_0x40c3f3==='Set')return Array['from'](_0x1bc26b);if(_0x40c3f3==='Arguments'||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/['test'](_0x40c3f3))return _arrayLikeToArray(_0x1bc26b,_0x6914a9);}function _arrayLikeToArray(_0x476af0,_0x4d5db9){if(_0x4d5db9==null||_0x4d5db9>_0x476af0['length'])_0x4d5db9=_0x476af0['length'];for(var _0xd35a5c=0x0,_0x76cfd1=new Array(_0x4d5db9);_0xd35a5c<_0x4d5db9;_0xd35a5c++)_0x76cfd1[_0xd35a5c]=_0x476af0[_0xd35a5c];return _0x76cfd1;}function _nonIterableSpread(){var _0x1b2968=_0x3e3a;throw new TypeError(_0x1b2968(0x15d));}var Cesium$6=mars3d__namespace['Cesium'],CustomPrimitive=(function(){var _0x492873=_0x3e3a;function _0x4ac2b8(_0x296212){var _0x4e522e=_0x3e3a,_0x193dce;_classCallCheck(this,_0x4ac2b8),this['commandType']=_0x296212['commandType'],this['geometry']=_0x296212['geometry'],this['attributeLocations']=_0x296212['attributeLocations'],this[_0x4e522e(0x11e)]=_0x296212['primitiveType'],this[_0x4e522e(0xdb)]=_0x296212['uniformMap'],this['vertexShaderSource']=_0x296212['vertexShaderSource'],this['fragmentShaderSource']=_0x296212['fragmentShaderSource'],this[_0x4e522e(0xf7)]=_0x296212[_0x4e522e(0xf7)],this['framebuffer']=_0x296212['framebuffer'],this['outputTexture']=_0x296212['outputTexture'],this['autoClear']=(_0x193dce=_0x296212['autoClear'])!==null&&_0x193dce!==void 0x0?_0x193dce:![],this[_0x4e522e(0x126)]=_0x296212['preExecute'],this['show']=!![],this['commandToExecute']=undefined,this['clearCommand']=undefined,this[_0x4e522e(0x164)]&&(this['clearCommand']=new Cesium$6['ClearCommand']({'color':new Cesium$6['Color'](0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this['framebuffer'],'pass':Cesium$6[_0x4e522e(0x16b)]['OPAQUE']}));}return _createClass(_0x4ac2b8,[{'key':_0x492873(0x11b),'value':function _0x14663c(_0x1863b2){var _0x2b815c=_0x492873;switch(this['commandType']){case'Draw':{var _0x3568ee=Cesium$6['VertexArray']['fromGeometry']({'context':_0x1863b2,'geometry':this['geometry'],'attributeLocations':this['attributeLocations'],'bufferUsage':Cesium$6['BufferUsage']['STATIC_DRAW']}),_0x42df13=Cesium$6['ShaderProgram']['fromCache']({'context':_0x1863b2,'attributeLocations':this['attributeLocations'],'vertexShaderSource':this['vertexShaderSource'],'fragmentShaderSource':this['fragmentShaderSource']}),_0xdfd237=Cesium$6[_0x2b815c(0x133)][_0x2b815c(0xc8)](this['rawRenderState']);return new Cesium$6[(_0x2b815c(0xc9))]({'primitiveType':this['primitiveType'],'shaderProgram':_0x42df13,'vertexArray':_0x3568ee,'modelMatrix':Cesium$6['Matrix4']['IDENTITY'],'renderState':_0xdfd237,'uniformMap':this['uniformMap'],'castShadows':![],'receiveShadows':![],'framebuffer':this[_0x2b815c(0xa2)],'pass':Cesium$6['Pass'][_0x2b815c(0x160)],'pickOnly':!![],'owner':this});}case _0x2b815c(0x122):{return new Cesium$6['ComputeCommand']({'owner':this,'fragmentShaderSource':this[_0x2b815c(0x103)],'uniformMap':this[_0x2b815c(0xdb)],'outputTexture':this['outputTexture'],'persists':!![]});}}}},{'key':'setGeometry','value':function _0x581826(_0x593907,_0x5d0b7f){var _0xa6e1df=_0x492873;this['geometry']=_0x5d0b7f;var _0x3b6af8=Cesium$6['VertexArray']['fromGeometry']({'context':_0x593907,'geometry':this[_0xa6e1df(0x8d)],'attributeLocations':this['attributeLocations'],'bufferUsage':Cesium$6['BufferUsage']['STATIC_DRAW']});this['commandToExecute'][_0xa6e1df(0x146)]=_0x3b6af8;}},{'key':'update','value':function _0x2b5888(_0x211d7e){var _0x3b7874=_0x492873;if(!this[_0x3b7874(0x8c)])return;if(_0x211d7e['mode']!==Cesium$6['SceneMode']['SCENE3D'])return;!Cesium$6['defined'](this[_0x3b7874(0x163)])&&(this['commandToExecute']=this[_0x3b7874(0x11b)](_0x211d7e['context'])),Cesium$6[_0x3b7874(0x10f)](this['preExecute'])&&this[_0x3b7874(0x126)](),Cesium$6['defined'](this['clearCommand'])&&_0x211d7e[_0x3b7874(0xba)]['push'](this['clearCommand']),_0x211d7e[_0x3b7874(0xba)]['push'](this['commandToExecute']);}},{'key':_0x492873(0x14c),'value':function _0x578bd7(){return![];}},{'key':_0x492873(0x87),'value':function _0x371b37(){var _0x1a995b=_0x492873;if(this['clearCommand']){var _0xca4142,_0x2c7088;(_0xca4142=this['clearCommand'])!==null&&_0xca4142!==void 0x0&&_0xca4142['vertexArray']&&this['clearCommand']['vertexArray']['destroy'](),(_0x2c7088=this[_0x1a995b(0xd1)])!==null&&_0x2c7088!==void 0x0&&_0x2c7088[_0x1a995b(0x140)]&&this[_0x1a995b(0xd1)]['shaderProgram'][_0x1a995b(0x87)](),delete this['clearCommand'];}return this['commandToExecute']&&(this[_0x1a995b(0x163)]['vertexArray']&&this['commandToExecute'][_0x1a995b(0x146)]['destroy'](),this[_0x1a995b(0x163)]['shaderProgram']&&this['commandToExecute'][_0x1a995b(0x140)][_0x1a995b(0x87)](),delete this['commandToExecute']),Cesium$6['destroyObject'](this);}}]),_0x4ac2b8;}()),Cesium$5=mars3d__namespace[_0x272d26(0x13a)],Util=(function(){var _0x1cb468=function _0x5a669f(){var _0x1dff32=_0x3e3a,_0xc51c99=new Cesium$5['Geometry']({'attributes':new Cesium$5[(_0x1dff32(0xe6))]({'position':new Cesium$5['GeometryAttribute']({'componentDatatype':Cesium$5['ComponentDatatype']['FLOAT'],'componentsPerAttribute':0x3,'values':new Float32Array([-0x1,-0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0,-0x1,0x1,0x0])}),'st':new Cesium$5['GeometryAttribute']({'componentDatatype':Cesium$5['ComponentDatatype']['FLOAT'],'componentsPerAttribute':0x2,'values':new Float32Array([0x0,0x0,0x1,0x0,0x1,0x1,0x0,0x1])})}),'indices':new Uint32Array([0x3,0x2,0x0,0x0,0x2,0x1])});return _0xc51c99;},_0x38d1f5=function _0x397a0a(_0x570398,_0x51770f){var _0x5c067a=_0x3e3a;if(Cesium$5['defined'](_0x51770f)){var _0x30bcc8={};_0x30bcc8[_0x5c067a(0xbc)]=_0x51770f,_0x570398[_0x5c067a(0x111)]=_0x30bcc8;}var _0x8549e5=new Cesium$5['Texture'](_0x570398);return _0x8549e5;},_0x24d79e=function _0x53eb59(_0x26faa2,_0x24733f,_0x3ed75a){var _0x35b376=new Cesium$5['Framebuffer']({'context':_0x26faa2,'colorTextures':[_0x24733f],'depthTexture':_0x3ed75a});return _0x35b376;},_0x5eae5a=function _0x1c361e(_0xfae1ed){var _0x4759af=_0x3e3a,_0x376cfb=!![],_0x66bf36=![],_0x26c025={'viewport':_0xfae1ed['viewport'],'depthTest':_0xfae1ed[_0x4759af(0x169)],'depthMask':_0xfae1ed['depthMask'],'blending':_0xfae1ed[_0x4759af(0xb2)]},_0x3c3d10=Cesium$5['Appearance']['getDefaultRenderState'](_0x376cfb,_0x66bf36,_0x26c025);return _0x3c3d10;},_0x1096db=function _0x297332(_0x4215b4){var _0x538fd4=_0x3e3a,_0x3637a3={},_0x87f962=Cesium$5['Math']['mod'](_0x4215b4['west'],Cesium$5[_0x538fd4(0xfe)][_0x538fd4(0xfc)]),_0xd07896=Cesium$5['Math']['mod'](_0x4215b4['east'],Cesium$5['Math'][_0x538fd4(0xfc)]),_0x4f62d1=_0x4215b4[_0x538fd4(0x84)],_0x2c6682,_0x2f3595;_0x4f62d1>Cesium$5[_0x538fd4(0xfe)][_0x538fd4(0xa6)]?(_0x2c6682=0x0,_0x2f3595=Cesium$5['Math']['TWO_PI']):_0xd07896-_0x87f962<_0x4f62d1?(_0x2c6682=_0x87f962,_0x2f3595=_0x87f962+_0x4f62d1):(_0x2c6682=_0x87f962,_0x2f3595=_0xd07896);_0x3637a3['lon']={'min':Cesium$5['Math'][_0x538fd4(0x106)](_0x2c6682),'max':Cesium$5[_0x538fd4(0xfe)][_0x538fd4(0x106)](_0x2f3595)};var _0x5500ef=_0x4215b4['south'],_0x3cf0a2=_0x4215b4['north'],_0x561405=_0x4215b4[_0x538fd4(0x96)],_0x22b3ca=_0x561405>Cesium$5['Math']['PI']/0xc?_0x561405/0x2:0x0,_0x3abdf7=Cesium$5['Math'][_0x538fd4(0x12e)](_0x5500ef-_0x22b3ca),_0x19c6f9=Cesium$5[_0x538fd4(0xfe)][_0x538fd4(0x12e)](_0x3cf0a2+_0x22b3ca);return _0x3abdf7<-Cesium$5['Math'][_0x538fd4(0xf9)]&&(_0x3abdf7=-Cesium$5['Math']['PI_OVER_TWO']),_0x19c6f9>Cesium$5['Math']['PI_OVER_THREE']&&(_0x19c6f9=Cesium$5['Math'][_0x538fd4(0xf3)]),_0x3637a3['lat']={'min':Cesium$5[_0x538fd4(0xfe)]['toDegrees'](_0x3abdf7),'max':Cesium$5['Math']['toDegrees'](_0x19c6f9)},_0x3637a3;};return{'getFullscreenQuad':_0x1cb468,'createTexture':_0x38d1f5,'createFramebuffer':_0x24d79e,'createRawRenderState':_0x5eae5a,'viewRectangleToLonLatRange':_0x1096db};}()),segmentDraw_vert='attribute\x20vec2\x20st;\x0a//\x20it\x20is\x20not\x20normal\x20itself,\x20but\x20used\x20to\x20control\x20normal\x0aattribute\x20vec3\x20normal;\x20//\x20(point\x20to\x20use,\x20offset\x20sign,\x20not\x20used\x20component)\x0a\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20postProcessingPosition;\x0auniform\x20sampler2D\x20postProcessingSpeed;\x0a\x0auniform\x20float\x20particleHeight;\x0a\x0auniform\x20float\x20aspect;\x0auniform\x20float\x20pixelSize;\x0auniform\x20float\x20lineWidth;\x0a\x0avarying\x20float\x20speedNormalization;\x0a\x0avec3\x20convertCoordinate(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20WGS84\x20(lon,\x20lat,\x20lev)\x20->\x20ECEF\x20(x,\x20y,\x20z)\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Geographic_coordinate_conversion#From_geodetic_to_ECEF_coordinates\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20WGS\x2084\x20geometric\x20constants\x20\x0a\x20\x20\x20\x20float\x20a\x20=\x206378137.0;\x20//\x20Semi-major\x20axis\x20\x0a\x20\x20\x20\x20float\x20b\x20=\x206356752.3142;\x20//\x20Semi-minor\x20axis\x20\x0a\x20\x20\x20\x20float\x20e2\x20=\x206.69437999014e-3;\x20//\x20First\x20eccentricity\x20squared\x0a\x0a\x20\x20\x20\x20float\x20latitude\x20=\x20radians(lonLatLev.y);\x0a\x20\x20\x20\x20float\x20longitude\x20=\x20radians(lonLatLev.x);\x0a\x0a\x20\x20\x20\x20float\x20cosLat\x20=\x20cos(latitude);\x0a\x20\x20\x20\x20float\x20sinLat\x20=\x20sin(latitude);\x0a\x20\x20\x20\x20float\x20cosLon\x20=\x20cos(longitude);\x0a\x20\x20\x20\x20float\x20sinLon\x20=\x20sin(longitude);\x0a\x0a\x20\x20\x20\x20float\x20N_Phi\x20=\x20a\x20/\x20sqrt(1.0\x20-\x20e2\x20*\x20sinLat\x20*\x20sinLat);\x0a\x20\x20\x20\x20float\x20h\x20=\x20particleHeight;\x20//\x20it\x20should\x20be\x20high\x20enough\x20otherwise\x20the\x20particle\x20may\x20not\x20pass\x20the\x20terrain\x20depth\x20test\x0a\x0a\x20\x20\x20\x20vec3\x20cartesian\x20=\x20vec3(0.0);\x0a\x20\x20\x20\x20cartesian.x\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20cosLon;\x0a\x20\x20\x20\x20cartesian.y\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20sinLon;\x0a\x20\x20\x20\x20cartesian.z\x20=\x20((b\x20*\x20b)\x20/\x20(a\x20*\x20a)\x20*\x20N_Phi\x20+\x20h)\x20*\x20sinLat;\x0a\x20\x20\x20\x20return\x20cartesian;\x0a}\x0a\x0avec4\x20calcProjectedCoordinate(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20the\x20range\x20of\x20longitude\x20in\x20Cesium\x20is\x20[-180,\x20180]\x20but\x20the\x20range\x20of\x20longitude\x20in\x20the\x20NetCDF\x20file\x20is\x20[0,\x20360]\x0a\x20\x20\x20\x20//\x20[0,\x20180]\x20is\x20corresponding\x20to\x20[0,\x20180]\x20and\x20[180,\x20360]\x20is\x20corresponding\x20to\x20[-180,\x200]\x0a\x20\x20\x20\x20lonLatLev.x\x20=\x20mod(lonLatLev.x\x20+\x20180.0,\x20360.0)\x20-\x20180.0;\x0a\x20\x20\x20\x20vec3\x20particlePosition\x20=\x20convertCoordinate(lonLatLev);\x0a\x20\x20\x20\x20vec4\x20projectedCoordinate\x20=\x20czm_modelViewProjection\x20*\x20vec4(particlePosition,\x201.0);\x0a\x20\x20\x20\x20return\x20projectedCoordinate;\x0a}\x0a\x0avec4\x20calcOffset(vec4\x20currentProjectedCoordinate,\x20vec4\x20nextProjectedCoordinate,\x20float\x20offsetSign)\x20{\x0a\x20\x20\x20\x20vec2\x20aspectVec2\x20=\x20vec2(aspect,\x201.0);\x0a\x20\x20\x20\x20vec2\x20currentXY\x20=\x20(currentProjectedCoordinate.xy\x20/\x20currentProjectedCoordinate.w)\x20*\x20aspectVec2;\x0a\x20\x20\x20\x20vec2\x20nextXY\x20=\x20(nextProjectedCoordinate.xy\x20/\x20nextProjectedCoordinate.w)\x20*\x20aspectVec2;\x0a\x0a\x20\x20\x20\x20float\x20offsetLength\x20=\x20lineWidth\x20/\x202.0;\x0a\x20\x20\x20\x20vec2\x20direction\x20=\x20normalize(nextXY\x20-\x20currentXY);\x0a\x20\x20\x20\x20vec2\x20normalVector\x20=\x20vec2(-direction.y,\x20direction.x);\x0a\x20\x20\x20\x20normalVector.x\x20=\x20normalVector.x\x20/\x20aspect;\x0a\x20\x20\x20\x20normalVector\x20=\x20offsetLength\x20*\x20normalVector;\x0a\x0a\x20\x20\x20\x20vec4\x20offset\x20=\x20vec4(offsetSign\x20*\x20normalVector,\x200.0,\x200.0);\x0a\x20\x20\x20\x20return\x20offset;\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20vec2\x20particleIndex\x20=\x20st;\x0a\x0a\x20\x20\x20\x20vec3\x20currentPosition\x20=\x20texture2D(currentParticlesPosition,\x20particleIndex).rgb;\x0a\x20\x20\x20\x20vec4\x20nextPosition\x20=\x20texture2D(postProcessingPosition,\x20particleIndex);\x0a\x0a\x20\x20\x20\x20vec4\x20currentProjectedCoordinate\x20=\x20vec4(0.0);\x0a\x20\x20\x20\x20vec4\x20nextProjectedCoordinate\x20=\x20vec4(0.0);\x0a\x20\x20\x20\x20if\x20(nextPosition.w\x20>\x200.0)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20currentProjectedCoordinate\x20=\x20calcProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20\x20\x20\x20\x20nextProjectedCoordinate\x20=\x20calcProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20currentProjectedCoordinate\x20=\x20calcProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20\x20\x20\x20\x20nextProjectedCoordinate\x20=\x20calcProjectedCoordinate(nextPosition.xyz);\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20float\x20pointToUse\x20=\x20normal.x;\x20//\x20-1\x20is\x20currentProjectedCoordinate\x20and\x20+1\x20is\x20nextProjectedCoordinate\x0a\x20\x20\x20\x20float\x20offsetSign\x20=\x20normal.y;\x0a\x0a\x20\x20\x20\x20vec4\x20offset\x20=\x20pixelSize\x20*\x20calcOffset(currentProjectedCoordinate,\x20nextProjectedCoordinate,\x20offsetSign);\x0a\x20\x20\x20\x20if\x20(pointToUse\x20<\x200.0)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_Position\x20=\x20currentProjectedCoordinate\x20+\x20offset;\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_Position\x20=\x20nextProjectedCoordinate\x20+\x20offset;\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20speedNormalization\x20=\x20texture2D(postProcessingSpeed,\x20particleIndex).a;\x0a}',segmentDraw_frag='uniform\x20sampler2D\x20colorTable;\x0a\x0avarying\x20float\x20speedNormalization;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20gl_FragColor\x20=\x20texture2D(colorTable,\x20vec2(speedNormalization,\x200.0));\x0a}',fullscreen_vert='attribute\x20vec3\x20position;\x0d\x0aattribute\x20vec2\x20st;\x0d\x0a\x0d\x0avarying\x20vec2\x20textureCoordinate;\x0d\x0a\x0d\x0avoid\x20main()\x20{\x0d\x0a\x20\x20\x20\x20textureCoordinate\x20=\x20st;\x0d\x0a\x20\x20\x20\x20gl_Position\x20=\x20vec4(position,\x201.0);\x0d\x0a}',trailDraw_frag='uniform\x20sampler2D\x20segmentsColorTexture;\x0d\x0auniform\x20sampler2D\x20segmentsDepthTexture;\x0d\x0a\x0d\x0auniform\x20sampler2D\x20currentTrailsColor;\x0d\x0auniform\x20sampler2D\x20trailsDepthTexture;\x0d\x0a\x0d\x0auniform\x20float\x20fadeOpacity;\x0d\x0a\x0d\x0avarying\x20vec2\x20textureCoordinate;\x0d\x0a\x0d\x0avoid\x20main()\x20{\x0d\x0a\x20\x20\x20\x20vec4\x20pointsColor\x20=\x20texture2D(segmentsColorTexture,\x20textureCoordinate);\x0d\x0a\x20\x20\x20\x20vec4\x20trailsColor\x20=\x20texture2D(currentTrailsColor,\x20textureCoordinate);\x0d\x0a\x0d\x0a\x20\x20\x20\x20trailsColor\x20=\x20floor(fadeOpacity\x20*\x20255.0\x20*\x20trailsColor)\x20/\x20255.0;\x20//\x20make\x20sure\x20the\x20trailsColor\x20will\x20be\x20strictly\x20decreased\x0d\x0a\x0d\x0a\x20\x20\x20\x20float\x20pointsDepth\x20=\x20texture2D(segmentsDepthTexture,\x20textureCoordinate).r;\x0d\x0a\x20\x20\x20\x20float\x20trailsDepth\x20=\x20texture2D(trailsDepthTexture,\x20textureCoordinate).r;\x0d\x0a\x20\x20\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture2D(czm_globeDepthTexture,\x20textureCoordinate));\x0d\x0a\x0d\x0a\x20\x20\x20\x20gl_FragColor\x20=\x20vec4(0.0);\x0d\x0a\x20\x20\x20\x20if\x20(pointsDepth\x20<\x20globeDepth)\x20{\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20gl_FragColor\x20+\x20pointsColor;\x0d\x0a\x20\x20\x20\x20}\x0d\x0a\x20\x20\x20\x20if\x20(trailsDepth\x20<\x20globeDepth)\x20{\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20gl_FragColor\x20+\x20trailsColor;\x0d\x0a\x20\x20\x20\x20}\x0d\x0a\x20\x20\x20\x20gl_FragDepthEXT\x20=\x20min(pointsDepth,\x20trailsDepth);\x0d\x0a}',screenDraw_frag='uniform\x20sampler2D\x20trailsColorTexture;\x0d\x0auniform\x20sampler2D\x20trailsDepthTexture;\x0d\x0a\x0d\x0avarying\x20vec2\x20textureCoordinate;\x0d\x0a\x0d\x0avoid\x20main()\x20{\x0d\x0a\x20\x20\x20\x20vec4\x20trailsColor\x20=\x20texture2D(trailsColorTexture,\x20textureCoordinate);\x0d\x0a\x20\x20\x20\x20float\x20trailsDepth\x20=\x20texture2D(trailsDepthTexture,\x20textureCoordinate).r;\x0d\x0a\x20\x20\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture2D(czm_globeDepthTexture,\x20textureCoordinate));\x0d\x0a\x0d\x0a\x20\x20\x20\x20if\x20(trailsDepth\x20<\x20globeDepth)\x20{\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20trailsColor;\x0d\x0a\x20\x20\x20\x20}\x20else\x20{\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20vec4(0.0);\x0d\x0a\x20\x20\x20\x20}\x0d\x0a}',Cesium$4=mars3d__namespace[_0x272d26(0x13a)],ParticlesRendering=(function(){function _0x30b49b(_0x1a5c20,_0x2fa436,_0x1ad023,_0x20f702,_0x473031){_classCallCheck(this,_0x30b49b),this['createRenderingTextures'](_0x1a5c20,_0x2fa436,_0x1ad023['colors']),this['createRenderingFramebuffers'](_0x1a5c20),this['createRenderingPrimitives'](_0x1a5c20,_0x1ad023,_0x20f702,_0x473031);}return _createClass(_0x30b49b,[{'key':'createRenderingTextures','value':function _0x50b9b8(_0x456841,_0x58c3f6,_0x518caa){var _0x137056=_0x3e3a,_0x50dcdd={'context':_0x456841,'width':_0x456841['drawingBufferWidth'],'height':_0x456841['drawingBufferHeight'],'pixelFormat':Cesium$4['PixelFormat'][_0x137056(0xa9)],'pixelDatatype':Cesium$4[_0x137056(0x147)]['UNSIGNED_BYTE']},_0x1bf376={'context':_0x456841,'width':_0x456841['drawingBufferWidth'],'height':_0x456841['drawingBufferHeight'],'pixelFormat':Cesium$4[_0x137056(0x89)]['DEPTH_COMPONENT'],'pixelDatatype':Cesium$4[_0x137056(0x147)]['UNSIGNED_INT']},_0x1f6e99=_0x518caa[_0x137056(0x138)],_0x109f17=new Float32Array(_0x1f6e99*0x3);for(var _0x55e141=0x0;_0x55e141<_0x1f6e99;_0x55e141++){var _0x2f4a6f=Cesium$4[_0x137056(0xc4)]['fromCssColorString'](_0x518caa[_0x55e141]);_0x109f17[0x3*_0x55e141]=_0x2f4a6f[_0x137056(0x110)],_0x109f17[0x3*_0x55e141+0x1]=_0x2f4a6f[_0x137056(0x9c)],_0x109f17[0x3*_0x55e141+0x2]=_0x2f4a6f[_0x137056(0x7c)];}var _0x4d933a={'context':_0x456841,'width':_0x1f6e99,'height':0x1,'pixelFormat':Cesium$4['PixelFormat'][_0x137056(0xe8)],'pixelDatatype':Cesium$4['PixelDatatype'][_0x137056(0xa8)],'sampler':new Cesium$4[(_0x137056(0xef))]({'minificationFilter':Cesium$4['TextureMinificationFilter']['LINEAR'],'magnificationFilter':Cesium$4[_0x137056(0x12b)]['LINEAR']})};this['textures']={'segmentsColor':Util['createTexture'](_0x50dcdd),'segmentsDepth':Util['createTexture'](_0x1bf376),'currentTrailsColor':Util[_0x137056(0xca)](_0x50dcdd),'currentTrailsDepth':Util['createTexture'](_0x1bf376),'nextTrailsColor':Util['createTexture'](_0x50dcdd),'nextTrailsDepth':Util[_0x137056(0xca)](_0x1bf376),'colorTable':Util['createTexture'](_0x4d933a,_0x109f17)};}},{'key':'createRenderingFramebuffers','value':function _0x205bd1(_0xc17928){var _0x555c52=_0x3e3a;this['framebuffers']={'segments':Util[_0x555c52(0xae)](_0xc17928,this['textures'][_0x555c52(0x16e)],this['textures']['segmentsDepth']),'currentTrails':Util[_0x555c52(0xae)](_0xc17928,this['textures']['currentTrailsColor'],this['textures']['currentTrailsDepth']),'nextTrails':Util[_0x555c52(0xae)](_0xc17928,this['textures']['nextTrailsColor'],this['textures']['nextTrailsDepth'])};}},{'key':'createSegmentsGeometry','value':function _0x3ac006(_0x1fd145){var _0x41e2dd=_0x3e3a,_0x4f45f1=0x4,_0x1f93fb=[];for(var _0x3f9748=0x0;_0x3f9748<_0x1fd145['particlesTextureSize'];_0x3f9748++){for(var _0x29c069=0x0;_0x29c069<_0x1fd145['particlesTextureSize'];_0x29c069++){for(var _0x3abff5=0x0;_0x3abff5<_0x4f45f1;_0x3abff5++){_0x1f93fb[_0x41e2dd(0x145)](_0x3f9748/_0x1fd145['particlesTextureSize']),_0x1f93fb[_0x41e2dd(0x145)](_0x29c069/_0x1fd145['particlesTextureSize']);}}}_0x1f93fb=new Float32Array(_0x1f93fb);var _0x5cdf5a=[],_0x1b8fbe=[-0x1,0x1],_0x32112f=[-0x1,0x1];for(var _0x3fe537=0x0;_0x3fe537<_0x1fd145[_0x41e2dd(0x118)];_0x3fe537++){for(var _0x1710f2=0x0;_0x1710f2<_0x4f45f1/0x2;_0x1710f2++){for(var _0x26c424=0x0;_0x26c424<_0x4f45f1/0x2;_0x26c424++){_0x5cdf5a['push'](_0x1b8fbe[_0x1710f2]),_0x5cdf5a[_0x41e2dd(0x145)](_0x32112f[_0x26c424]),_0x5cdf5a['push'](0x0);}}}_0x5cdf5a=new Float32Array(_0x5cdf5a);var _0x1c8562=0x6*_0x1fd145['maxParticles'],_0x55a361=new Uint32Array(_0x1c8562);for(var _0x55de19=0x0,_0x5687d1=0x0,_0x39341a=0x0;_0x55de19<_0x1fd145['maxParticles'];_0x55de19++){_0x55a361[_0x5687d1++]=_0x39341a+0x0,_0x55a361[_0x5687d1++]=_0x39341a+0x1,_0x55a361[_0x5687d1++]=_0x39341a+0x2,_0x55a361[_0x5687d1++]=_0x39341a+0x2,_0x55a361[_0x5687d1++]=_0x39341a+0x1,_0x55a361[_0x5687d1++]=_0x39341a+0x3,_0x39341a+=0x4;}var _0x537504=new Cesium$4[(_0x41e2dd(0x124))]({'attributes':new Cesium$4[(_0x41e2dd(0xe6))]({'st':new Cesium$4['GeometryAttribute']({'componentDatatype':Cesium$4['ComponentDatatype'][_0x41e2dd(0xa8)],'componentsPerAttribute':0x2,'values':_0x1f93fb}),'normal':new Cesium$4['GeometryAttribute']({'componentDatatype':Cesium$4['ComponentDatatype'][_0x41e2dd(0xa8)],'componentsPerAttribute':0x3,'values':_0x5cdf5a})}),'indices':_0x55a361});return _0x537504;}},{'key':'createRenderingPrimitives','value':function _0x30d84a(_0x2ed571,_0x2c931d,_0x3c95d6,_0x5569db){var _0x3c7b84=_0x3e3a,_0x5ab34f=this;this[_0x3c7b84(0xfb)]={'segments':new CustomPrimitive({'commandType':_0x3c7b84(0x7b),'attributeLocations':{'st':0x0,'normal':0x1},'geometry':this[_0x3c7b84(0xd2)](_0x2c931d),'primitiveType':Cesium$4[_0x3c7b84(0xea)]['TRIANGLES'],'uniformMap':{'currentParticlesPosition':function _0x366b61(){var _0x2690cd=_0x3c7b84;return _0x5569db[_0x2690cd(0x15e)]['currentParticlesPosition'];},'postProcessingPosition':function _0x316027(){return _0x5569db['particlesTextures']['postProcessingPosition'];},'postProcessingSpeed':function _0x375b48(){var _0x2fa2a7=_0x3c7b84;return _0x5569db[_0x2fa2a7(0x15e)]['postProcessingSpeed'];},'colorTable':function _0xf77d5b(){var _0x17b825=_0x3c7b84;return _0x5ab34f[_0x17b825(0x109)][_0x17b825(0x15a)];},'aspect':function _0x31c45e(){var _0x17eaed=_0x3c7b84;return _0x2ed571[_0x17eaed(0x142)]/_0x2ed571['drawingBufferHeight'];},'pixelSize':function _0x36ed89(){var _0x3152a5=_0x3c7b84;return _0x3c95d6[_0x3152a5(0x88)];},'lineWidth':function _0x404256(){var _0x450845=_0x3c7b84;return _0x2c931d[_0x450845(0xbe)];},'particleHeight':function _0x31ddaa(){var _0xff1d51=_0x3c7b84;return _0x2c931d[_0xff1d51(0x101)];}},'vertexShaderSource':new Cesium$4['ShaderSource']({'sources':[segmentDraw_vert]}),'fragmentShaderSource':new Cesium$4[(_0x3c7b84(0x76))]({'sources':[segmentDraw_frag]}),'rawRenderState':Util[_0x3c7b84(0x81)]({'viewport':undefined,'depthTest':{'enabled':!![]},'depthMask':!![]}),'framebuffer':this[_0x3c7b84(0x137)]['segments'],'autoClear':!![]}),'trails':new CustomPrimitive({'commandType':_0x3c7b84(0x7b),'attributeLocations':{'position':0x0,'st':0x1},'geometry':Util['getFullscreenQuad'](),'primitiveType':Cesium$4[_0x3c7b84(0xea)]['TRIANGLES'],'uniformMap':{'segmentsColorTexture':function _0x481cc2(){var _0xdef814=_0x3c7b84;return _0x5ab34f['textures'][_0xdef814(0x16e)];},'segmentsDepthTexture':function _0x5ac35b(){var _0x1b4fec=_0x3c7b84;return _0x5ab34f[_0x1b4fec(0x109)][_0x1b4fec(0x90)];},'currentTrailsColor':function _0x1ecff0(){var _0x5794d0=_0x3c7b84;return _0x5ab34f['framebuffers'][_0x5794d0(0xec)]['getColorTexture'](0x0);},'trailsDepthTexture':function _0x2592ee(){var _0xc932f4=_0x3c7b84;return _0x5ab34f[_0xc932f4(0x137)]['currentTrails']['depthTexture'];},'fadeOpacity':function _0x186ad9(){var _0x18c475=_0x3c7b84;return _0x2c931d[_0x18c475(0xb9)];}},'vertexShaderSource':new Cesium$4['ShaderSource']({'defines':['DISABLE_GL_POSITION_LOG_DEPTH'],'sources':[fullscreen_vert]}),'fragmentShaderSource':new Cesium$4['ShaderSource']({'defines':['DISABLE_LOG_DEPTH_FRAGMENT_WRITE'],'sources':[trailDraw_frag]}),'rawRenderState':Util['createRawRenderState']({'viewport':undefined,'depthTest':{'enabled':!![],'func':Cesium$4['DepthFunction']['ALWAYS']},'depthMask':!![]}),'framebuffer':this['framebuffers']['nextTrails'],'autoClear':!![],'preExecute':function _0x3f2df7(){var _0x2ca0a3=_0x3c7b84,_0x5a6105=_0x5ab34f['framebuffers']['currentTrails'];_0x5ab34f['framebuffers']['currentTrails']=_0x5ab34f['framebuffers']['nextTrails'],_0x5ab34f['framebuffers']['nextTrails']=_0x5a6105,_0x5ab34f['primitives'][_0x2ca0a3(0xa5)]['commandToExecute']['framebuffer']=_0x5ab34f['framebuffers']['nextTrails'],_0x5ab34f['primitives'][_0x2ca0a3(0xa5)]['clearCommand']['framebuffer']=_0x5ab34f['framebuffers']['nextTrails'];}}),'screen':new CustomPrimitive({'commandType':_0x3c7b84(0x7b),'attributeLocations':{'position':0x0,'st':0x1},'geometry':Util['getFullscreenQuad'](),'primitiveType':Cesium$4[_0x3c7b84(0xea)][_0x3c7b84(0xb4)],'uniformMap':{'trailsColorTexture':function _0x3a9b77(){var _0x3699b7=_0x3c7b84;return _0x5ab34f[_0x3699b7(0x137)]['nextTrails']['getColorTexture'](0x0);},'trailsDepthTexture':function _0x18c9d1(){var _0x200022=_0x3c7b84;return _0x5ab34f['framebuffers']['nextTrails'][_0x200022(0x86)];}},'vertexShaderSource':new Cesium$4['ShaderSource']({'defines':['DISABLE_GL_POSITION_LOG_DEPTH'],'sources':[fullscreen_vert]}),'fragmentShaderSource':new Cesium$4['ShaderSource']({'defines':['DISABLE_LOG_DEPTH_FRAGMENT_WRITE'],'sources':[screenDraw_frag]}),'rawRenderState':Util[_0x3c7b84(0x81)]({'viewport':undefined,'depthTest':{'enabled':![]},'depthMask':!![],'blending':{'enabled':!![]}}),'framebuffer':undefined})};}}]),_0x30b49b;}()),getWind_frag=_0x272d26(0x94),updateSpeed_frag=_0x272d26(0x144),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 _0x5a8998=_0x272d26;function _0x385d06(_0x3d54c4,_0x5a0deb,_0x1e335c,_0xbd264f){_classCallCheck(this,_0x385d06),this['data']=_0x5a0deb,this['createWindTextures'](_0x3d54c4,_0x5a0deb),this['createParticlesTextures'](_0x3d54c4,_0x1e335c,_0xbd264f),this['createComputingPrimitives'](_0x5a0deb,_0x1e335c,_0xbd264f);}return _createClass(_0x385d06,[{'key':'createWindTextures','value':function _0x1de593(_0x383e0e,_0x195f70){var _0x2b785c=_0x3e3a,_0x613b6f={'context':_0x383e0e,'width':_0x195f70['dimensions']['lon'],'height':_0x195f70['dimensions']['lat']*(_0x195f70['dimensions']['lev']||0x1),'pixelFormat':Cesium$3['PixelFormat'][_0x2b785c(0x117)],'pixelDatatype':Cesium$3[_0x2b785c(0x147)]['FLOAT'],'flipY':![],'sampler':new Cesium$3['Sampler']({'minificationFilter':Cesium$3['TextureMinificationFilter']['NEAREST'],'magnificationFilter':Cesium$3['TextureMagnificationFilter']['NEAREST']})};this['windTextures']={'U':Util['createTexture'](_0x613b6f,_0x195f70['U']['array']),'V':Util[_0x2b785c(0xca)](_0x613b6f,_0x195f70['V']['array'])};}},{'key':'createParticlesTextures','value':function _0x4f3c03(_0x4d563c,_0x1366d8,_0x3f7af1){var _0x59cd3d=_0x3e3a,_0x1c0106={'context':_0x4d563c,'width':_0x1366d8['particlesTextureSize'],'height':_0x1366d8['particlesTextureSize'],'pixelFormat':Cesium$3['PixelFormat']['RGBA'],'pixelDatatype':Cesium$3['PixelDatatype']['FLOAT'],'flipY':![],'sampler':new Cesium$3['Sampler']({'minificationFilter':Cesium$3['TextureMinificationFilter']['NEAREST'],'magnificationFilter':Cesium$3['TextureMagnificationFilter']['NEAREST']})},_0x1eac54=this['randomizeParticles'](_0x1366d8[_0x59cd3d(0x118)],_0x3f7af1),_0x256842=new Float32Array(0x4*_0x1366d8[_0x59cd3d(0x118)])[_0x59cd3d(0xd6)](0x0);this[_0x59cd3d(0x15e)]={'particlesWind':Util[_0x59cd3d(0xca)](_0x1c0106),'currentParticlesPosition':Util['createTexture'](_0x1c0106,_0x1eac54),'nextParticlesPosition':Util['createTexture'](_0x1c0106,_0x1eac54),'currentParticlesSpeed':Util['createTexture'](_0x1c0106,_0x256842),'nextParticlesSpeed':Util['createTexture'](_0x1c0106,_0x256842),'postProcessingPosition':Util['createTexture'](_0x1c0106,_0x1eac54),'postProcessingSpeed':Util['createTexture'](_0x1c0106,_0x256842)};}},{'key':_0x5a8998(0xd4),'value':function _0x31e53a(_0x20ec75,_0x1181c4){var _0x565db2=_0x5a8998,_0x10eb74=new Float32Array(0x4*_0x20ec75);for(var _0x2459a0=0x0;_0x2459a0<_0x20ec75;_0x2459a0++){_0x10eb74[0x4*_0x2459a0]=Cesium$3['Math']['randomBetween'](_0x1181c4['lonRange']['x'],_0x1181c4[_0x565db2(0x74)]['y']),_0x10eb74[0x4*_0x2459a0+0x1]=Cesium$3[_0x565db2(0xfe)]['randomBetween'](_0x1181c4[_0x565db2(0x11a)]['x'],_0x1181c4['latRange']['y']),_0x10eb74[0x4*_0x2459a0+0x2]=Cesium$3['Math']['randomBetween'](this[_0x565db2(0x11f)]['lev']['min'],this['data']['lev'][_0x565db2(0x148)]),_0x10eb74[0x4*_0x2459a0+0x3]=0x0;}return _0x10eb74;}},{'key':'destroyParticlesTextures','value':function _0x25c1fa(){var _0x182b47=this;Object['keys'](this['particlesTextures'])['forEach'](function(_0x1a42b4){var _0x272ebf=_0x3e3a;_0x182b47[_0x272ebf(0x15e)][_0x1a42b4][_0x272ebf(0x87)]();});}},{'key':_0x5a8998(0x7d),'value':function _0xb5b990(_0xf8b2e0,_0x5cf15f,_0x1bf199){var _0x3cea95=_0x5a8998,_0x3b39dd=new Cesium$3['Cartesian3'](_0xf8b2e0['dimensions']['lon'],_0xf8b2e0[_0x3cea95(0x10b)][_0x3cea95(0x15b)],_0xf8b2e0['dimensions']['lev']),_0x1d2300=new Cesium$3['Cartesian3'](_0xf8b2e0['lon'][_0x3cea95(0x73)],_0xf8b2e0['lat']['min'],_0xf8b2e0['lev']['min']),_0x148a28=new Cesium$3['Cartesian3'](_0xf8b2e0['lon']['max'],_0xf8b2e0[_0x3cea95(0x15b)]['max'],_0xf8b2e0[_0x3cea95(0x154)]['max']),_0x590aa7=new Cesium$3['Cartesian3']((_0x148a28['x']-_0x1d2300['x'])/(_0x3b39dd['x']-0x1),(_0x148a28['y']-_0x1d2300['y'])/(_0x3b39dd['y']-0x1),_0x3b39dd['z']>0x1?(_0x148a28['z']-_0x1d2300['z'])/(_0x3b39dd['z']-0x1):0x1),_0x5f00a5=new Cesium$3[(_0x3cea95(0x167))](_0xf8b2e0['U'][_0x3cea95(0x73)],_0xf8b2e0['U']['max']),_0x4fe388=new Cesium$3['Cartesian2'](_0xf8b2e0['V'][_0x3cea95(0x73)],_0xf8b2e0['V'][_0x3cea95(0x148)]),_0x21a1ec=this;this['primitives']={'getWind':new CustomPrimitive({'commandType':_0x3cea95(0x122),'uniformMap':{'U':function _0x9e4dfe(){return _0x21a1ec['windTextures']['U'];},'V':function _0x174f5e(){var _0x4fffc9=_0x3cea95;return _0x21a1ec[_0x4fffc9(0xcf)]['V'];},'currentParticlesPosition':function _0x460eeb(){return _0x21a1ec['particlesTextures']['currentParticlesPosition'];},'dimension':function _0x3ffdac(){return _0x3b39dd;},'minimum':function _0x42408c(){return _0x1d2300;},'maximum':function _0x3e7218(){return _0x148a28;},'interval':function _0x43b2d0(){return _0x590aa7;}},'fragmentShaderSource':new Cesium$3[(_0x3cea95(0x76))]({'sources':[getWind_frag]}),'outputTexture':this['particlesTextures']['particlesWind'],'preExecute':function _0x49e7a3(){_0x21a1ec['primitives']['getWind']['commandToExecute']['outputTexture']=_0x21a1ec['particlesTextures']['particlesWind'];}}),'updateSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesSpeed':function _0x458233(){return _0x21a1ec['particlesTextures']['currentParticlesSpeed'];},'particlesWind':function _0x2ad0bd(){return _0x21a1ec['particlesTextures']['particlesWind'];},'uSpeedRange':function _0x34af3c(){return _0x5f00a5;},'vSpeedRange':function _0x232424(){return _0x4fe388;},'pixelSize':function _0x14a7e1(){return _0x1bf199['pixelSize'];},'speedFactor':function _0x2272cb(){var _0x34110e=_0x3cea95;return _0x5cf15f[_0x34110e(0x16c)];}},'fragmentShaderSource':new Cesium$3[(_0x3cea95(0x76))]({'sources':[updateSpeed_frag]}),'outputTexture':this['particlesTextures']['nextParticlesSpeed'],'preExecute':function _0x2a3625(){var _0x3d7e78=_0x3cea95,_0x1dd1a8=_0x21a1ec['particlesTextures']['currentParticlesSpeed'];_0x21a1ec['particlesTextures']['currentParticlesSpeed']=_0x21a1ec['particlesTextures']['postProcessingSpeed'],_0x21a1ec[_0x3d7e78(0x15e)]['postProcessingSpeed']=_0x1dd1a8,_0x21a1ec[_0x3d7e78(0xfb)]['updateSpeed']['commandToExecute']['outputTexture']=_0x21a1ec['particlesTextures'][_0x3d7e78(0x91)];}}),'updatePosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesPosition':function _0x219a14(){var _0x20a590=_0x3cea95;return _0x21a1ec['particlesTextures'][_0x20a590(0xc6)];},'currentParticlesSpeed':function _0x128c25(){var _0x4cd65a=_0x3cea95;return _0x21a1ec['particlesTextures'][_0x4cd65a(0xbf)];}},'fragmentShaderSource':new Cesium$3[(_0x3cea95(0x76))]({'sources':[updatePosition_frag]}),'outputTexture':this['particlesTextures']['nextParticlesPosition'],'preExecute':function _0x1e6f4e(){var _0x25767a=_0x3cea95,_0x3590fa=_0x21a1ec['particlesTextures']['currentParticlesPosition'];_0x21a1ec[_0x25767a(0x15e)]['currentParticlesPosition']=_0x21a1ec[_0x25767a(0x15e)]['postProcessingPosition'],_0x21a1ec[_0x25767a(0x15e)][_0x25767a(0xbb)]=_0x3590fa,_0x21a1ec['primitives'][_0x25767a(0x78)][_0x25767a(0x163)][_0x25767a(0x123)]=_0x21a1ec['particlesTextures']['nextParticlesPosition'];}}),'postProcessingPosition':new CustomPrimitive({'commandType':_0x3cea95(0x122),'uniformMap':{'nextParticlesPosition':function _0x2e5672(){return _0x21a1ec['particlesTextures']['nextParticlesPosition'];},'nextParticlesSpeed':function _0x44a9a5(){return _0x21a1ec['particlesTextures']['nextParticlesSpeed'];},'lonRange':function _0x4bf002(){var _0x54e03a=_0x3cea95;return _0x1bf199[_0x54e03a(0x74)];},'latRange':function _0x227d9e(){return _0x1bf199['latRange'];},'randomCoefficient':function _0x18419b(){var _0xb4546=Math['random']();return _0xb4546;},'dropRate':function _0x4e03d3(){return _0x5cf15f['dropRate'];},'dropRateBump':function _0x30d090(){return _0x5cf15f['dropRateBump'];}},'fragmentShaderSource':new Cesium$3[(_0x3cea95(0x76))]({'sources':[postProcessingPosition_frag]}),'outputTexture':this['particlesTextures'][_0x3cea95(0xbb)],'preExecute':function _0x35ada7(){var _0x53c2a9=_0x3cea95;_0x21a1ec['primitives']['postProcessingPosition'][_0x53c2a9(0x163)]['outputTexture']=_0x21a1ec[_0x53c2a9(0x15e)][_0x53c2a9(0xbb)];}}),'postProcessingSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'postProcessingPosition':function _0x27af7b(){var _0x427298=_0x3cea95;return _0x21a1ec[_0x427298(0x15e)][_0x427298(0xbb)];},'nextParticlesSpeed':function _0x18a855(){return _0x21a1ec['particlesTextures']['nextParticlesSpeed'];}},'fragmentShaderSource':new Cesium$3['ShaderSource']({'sources':[postProcessingSpeed_frag]}),'outputTexture':this['particlesTextures']['postProcessingSpeed'],'preExecute':function _0x54d53d(){var _0x179529=_0x3cea95;_0x21a1ec[_0x179529(0xfb)]['postProcessingSpeed']['commandToExecute']['outputTexture']=_0x21a1ec['particlesTextures'][_0x179529(0x72)];}})};}}]),_0x385d06;}()),Cesium$2=mars3d__namespace[_0x272d26(0x13a)],ParticleSystem=(function(){var _0x316161=_0x272d26;function _0x4ce019(_0x2e9fd1,_0x5e3af2,_0x52648b,_0xa1e495){var _0x2d1d8c=_0x3e3a;_classCallCheck(this,_0x4ce019),this[_0x2d1d8c(0x130)]=_0x2e9fd1,_0x5e3af2=_objectSpread2({},_0x5e3af2);if(_0x5e3af2['udata']&&_0x5e3af2[_0x2d1d8c(0xff)]){var _0x25fb92,_0x5a386f,_0x596970,_0x36f523,_0x509e87,_0x2d93bf;_0x5e3af2['dimensions']={},_0x5e3af2['dimensions']['lon']=_0x5e3af2['cols'],_0x5e3af2['dimensions']['lat']=_0x5e3af2['rows'],_0x5e3af2['dimensions'][_0x2d1d8c(0x154)]=_0x5e3af2[_0x2d1d8c(0x154)]||0x1,_0x5e3af2['lon']={},_0x5e3af2['lon']['min']=_0x5e3af2[_0x2d1d8c(0xb7)],_0x5e3af2['lon']['max']=_0x5e3af2['xmax'],_0x5e3af2[_0x2d1d8c(0x15b)]={},_0x5e3af2[_0x2d1d8c(0x15b)][_0x2d1d8c(0x73)]=_0x5e3af2[_0x2d1d8c(0x11d)],_0x5e3af2['lat'][_0x2d1d8c(0x148)]=_0x5e3af2['ymax'],_0x5e3af2[_0x2d1d8c(0x154)]={},_0x5e3af2[_0x2d1d8c(0x154)]['min']=(_0x25fb92=_0x5e3af2[_0x2d1d8c(0x95)])!==null&&_0x25fb92!==void 0x0?_0x25fb92:0x1,_0x5e3af2[_0x2d1d8c(0x154)]['max']=(_0x5a386f=_0x5e3af2['levmax'])!==null&&_0x5a386f!==void 0x0?_0x5a386f:0x1,_0x5e3af2['U']={},_0x5e3af2['U']['array']=new Float32Array(_0x5e3af2[_0x2d1d8c(0xed)]),_0x5e3af2['U']['min']=(_0x596970=_0x5e3af2['umin'])!==null&&_0x596970!==void 0x0?_0x596970:Math['min'][_0x2d1d8c(0x151)](Math,_toConsumableArray(_0x5e3af2['udata'])),_0x5e3af2['U'][_0x2d1d8c(0x148)]=(_0x36f523=_0x5e3af2['umax'])!==null&&_0x36f523!==void 0x0?_0x36f523:Math['max'][_0x2d1d8c(0x151)](Math,_toConsumableArray(_0x5e3af2['udata'])),_0x5e3af2['V']={},_0x5e3af2['V'][_0x2d1d8c(0xda)]=new Float32Array(_0x5e3af2[_0x2d1d8c(0xff)]),_0x5e3af2['V']['min']=(_0x509e87=_0x5e3af2['vmin'])!==null&&_0x509e87!==void 0x0?_0x509e87:Math['min']['apply'](Math,_toConsumableArray(_0x5e3af2[_0x2d1d8c(0xff)])),_0x5e3af2['V'][_0x2d1d8c(0x148)]=(_0x2d93bf=_0x5e3af2[_0x2d1d8c(0x127)])!==null&&_0x2d93bf!==void 0x0?_0x2d93bf:Math[_0x2d1d8c(0x148)][_0x2d1d8c(0x151)](Math,_toConsumableArray(_0x5e3af2[_0x2d1d8c(0xff)]));}this['data']=_0x5e3af2,this['options']=_0x52648b,this['viewerParameters']=_0xa1e495,this[_0x2d1d8c(0xb0)]=new ParticlesComputing(this[_0x2d1d8c(0x130)],this['data'],this[_0x2d1d8c(0x93)],this['viewerParameters']),this[_0x2d1d8c(0x8e)]=new ParticlesRendering(this['context'],this['data'],this['options'],this[_0x2d1d8c(0x13f)],this[_0x2d1d8c(0xb0)]);}return _createClass(_0x4ce019,[{'key':'canvasResize','value':function _0x340f07(_0x35ae63){var _0xeb696b=_0x3e3a,_0x24bdc7=this;this['particlesComputing']['destroyParticlesTextures'](),Object[_0xeb696b(0xcd)](this[_0xeb696b(0xb0)]['windTextures'])['forEach'](function(_0x1b9cd4){var _0x433118=_0xeb696b;_0x24bdc7['particlesComputing'][_0x433118(0xcf)][_0x1b9cd4]['destroy']();}),this[_0xeb696b(0x8e)]['textures']['colorTable'][_0xeb696b(0x87)](),Object[_0xeb696b(0xcd)](this[_0xeb696b(0x8e)][_0xeb696b(0x137)])['forEach'](function(_0x3b04ee){_0x24bdc7['particlesRendering']['framebuffers'][_0x3b04ee]['destroy']();}),this['context']=_0x35ae63,this['particlesComputing']=new ParticlesComputing(this['context'],this['data'],this['options'],this['viewerParameters']),this['particlesRendering']=new ParticlesRendering(this[_0xeb696b(0x130)],this['data'],this['options'],this[_0xeb696b(0x13f)],this['particlesComputing']);}},{'key':'clearFramebuffers','value':function _0x3cae52(){var _0x2340e8=_0x3e3a,_0x25415c=this,_0x55a7c1=new Cesium$2['ClearCommand']({'color':new Cesium$2[(_0x2340e8(0xc4))](0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Cesium$2['Pass']['OPAQUE']});Object[_0x2340e8(0xcd)](this['particlesRendering'][_0x2340e8(0x137)])['forEach'](function(_0x3c9773){var _0x13cc47=_0x2340e8;_0x55a7c1[_0x13cc47(0xa2)]=_0x25415c['particlesRendering']['framebuffers'][_0x3c9773],_0x55a7c1[_0x13cc47(0x8a)](_0x25415c['context']);});}},{'key':'refreshParticles','value':function _0xe5d366(_0x1e0c5c){var _0x379ecd=_0x3e3a;this['clearFramebuffers'](),this[_0x379ecd(0xb0)]['destroyParticlesTextures'](),this['particlesComputing']['createParticlesTextures'](this[_0x379ecd(0x130)],this['options'],this['viewerParameters']);if(_0x1e0c5c){var _0x1e4947=this[_0x379ecd(0x8e)]['createSegmentsGeometry'](this['options']);this['particlesRendering']['primitives']['segments'][_0x379ecd(0x8d)]=_0x1e4947;var _0x166bb0=Cesium$2['VertexArray']['fromGeometry']({'context':this[_0x379ecd(0x130)],'geometry':_0x1e4947,'attributeLocations':this['particlesRendering']['primitives']['segments'][_0x379ecd(0x143)],'bufferUsage':Cesium$2['BufferUsage']['STATIC_DRAW']});this[_0x379ecd(0x8e)]['primitives'][_0x379ecd(0x82)][_0x379ecd(0x163)][_0x379ecd(0x146)]=_0x166bb0;}}},{'key':'setOptions','value':function _0x3fb755(_0x10a0a2){var _0x215158=_0x3e3a,_0x8d5c65=this,_0x3248e5=![];this['options']['maxParticles']!==_0x10a0a2['maxParticles']&&(_0x3248e5=!![]),Object[_0x215158(0xcd)](_0x10a0a2)[_0x215158(0xd9)](function(_0x2291c0){_0x8d5c65['options'][_0x2291c0]=_0x10a0a2[_0x2291c0];}),this[_0x215158(0x159)](_0x3248e5);}},{'key':_0x316161(0xe0),'value':function _0x439cb4(_0xd4900a){var _0x406cc3=this;Object['keys'](_0xd4900a)['forEach'](function(_0x16333c){_0x406cc3['viewerParameters'][_0x16333c]=_0xd4900a[_0x16333c];}),this['refreshParticles'](![]);}},{'key':_0x316161(0x87),'value':function _0x25fa23(){var _0x3b5023=_0x316161,_0x37551c=this;clearTimeout(this['canrefresh']),this['particlesComputing']['destroyParticlesTextures'](),Object['keys'](this[_0x3b5023(0xb0)]['windTextures'])['forEach'](function(_0x4d91c4){_0x37551c['particlesComputing']['windTextures'][_0x4d91c4]['destroy']();}),this[_0x3b5023(0x8e)]['textures']['colorTable']['destroy'](),Object[_0x3b5023(0xcd)](this[_0x3b5023(0x8e)]['framebuffers'])[_0x3b5023(0xd9)](function(_0x4e23c0){var _0x4d2461=_0x3b5023;_0x37551c['particlesRendering'][_0x4d2461(0x137)][_0x4e23c0]['destroy']();});for(var _0x3579bb in this){delete this[_0x3579bb];}}}]),_0x4ce019;}()),Cesium$1=mars3d__namespace[_0x272d26(0x13a)],BaseLayer$1=mars3d__namespace['layer'][_0x272d26(0x119)],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(_0x5e55b2){var _0x52cd92=_0x272d26;_inherits(_0xbe56fc,_0x5e55b2);var _0x1b3c65=_createSuper(_0xbe56fc);function _0xbe56fc(){var _0x12673c,_0x106531=arguments['length']>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};return _classCallCheck(this,_0xbe56fc),_0x106531=_objectSpread2(_objectSpread2({},DEF_OPTIONS),_0x106531),_0x12673c=_0x1b3c65['call'](this,_0x106531),_0x12673c['_setOptionsHook'](_0x106531),_0x12673c;}return _createClass(_0xbe56fc,[{'key':_0x52cd92(0xac),'get':function _0x286fda(){var _0x1da1cb=_0x52cd92;return this[_0x1da1cb(0xfb)];}},{'key':'data','get':function _0x4afcf2(){return this['_data'];},'set':function _0x8da29c(_0x2a49ee){this['setData'](_0x2a49ee);}},{'key':'colors','get':function _0x459584(){return this['options']['colors'];},'set':function _0x3e661e(_0x456f3e){var _0x6179de=_0x52cd92;this[_0x6179de(0x93)]['colors']=_0x456f3e,this['particleSystem']&&this[_0x6179de(0x7f)][_0x6179de(0x108)]({'colors':_0x456f3e}),this['resize']();}},{'key':'_mountedHook','value':function _0x43f4be(){}},{'key':'_addedHook','value':function _0x3608ce(){var _0x25b7b6=_0x52cd92;this['scene']=this['_map'][_0x25b7b6(0x153)],this['camera']=this[_0x25b7b6(0x9b)][_0x25b7b6(0xdd)],this['primitives']=new Cesium$1['PrimitiveCollection'](),this['_map']['scene']['primitives']['add'](this['primitives']),this[_0x25b7b6(0x13f)]={'lonRange':new Cesium$1['Cartesian2'](),'latRange':new Cesium$1[(_0x25b7b6(0x167))](),'pixelSize':0x0},this['globeBoundingSphere']=new Cesium$1['BoundingSphere'](Cesium$1['Cartesian3']['ZERO'],0.99*0x615299),this['updateViewerParameters'](),window['addEventListener']('resize',this[_0x25b7b6(0xd3)][_0x25b7b6(0x10d)](this),![]),this['mouse_down']=![],this[_0x25b7b6(0xe2)]=![],this[_0x25b7b6(0x9b)]['on'](mars3d__namespace['EventType'][_0x25b7b6(0x12d)],this[_0x25b7b6(0x14e)],this),this[_0x25b7b6(0x9b)]['on'](mars3d__namespace['EventType'][_0x25b7b6(0x77)],this[_0x25b7b6(0x112)],this),this['_map']['on'](mars3d__namespace['EventType']['mouseUp'],this['_onMouseUpEvent'],this),this[_0x25b7b6(0x9b)]['on'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this),this['_data']&&this[_0x25b7b6(0xc0)](this['_data']);}},{'key':_0x52cd92(0x136),'value':function _0x12f817(){var _0x42f27e=_0x52cd92;window['removeEventListener'](_0x42f27e(0xd3),this['resize']),this[_0x42f27e(0x9b)][_0x42f27e(0xa7)](mars3d__namespace[_0x42f27e(0xf0)][_0x42f27e(0x9d)],this['_onMap_preRenderEvent'],this),this[_0x42f27e(0x9b)][_0x42f27e(0xa7)](mars3d__namespace['EventType']['wheel'],this[_0x42f27e(0x14e)],this),this['_map']['off'](mars3d__namespace['EventType'][_0x42f27e(0x77)],this['_onMouseDownEvent'],this),this['_map']['off'](mars3d__namespace[_0x42f27e(0xf0)]['mouseUp'],this['_onMouseUpEvent'],this),this['_map'][_0x42f27e(0xa7)](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this),this[_0x42f27e(0xfb)]['removeAll'](),this['_map']['scene']['primitives'][_0x42f27e(0x14f)](this['primitives']);}},{'key':_0x52cd92(0xd3),'value':function _0x4559fc(){var _0xc8da42=_0x52cd92;if(!this['show']||!this['particleSystem'])return;this['primitives']['show']=![],this['primitives']['removeAll'](),this[_0xc8da42(0x9b)]['once'](mars3d__namespace['EventType']['preRender'],this['_onMap_preRenderEvent'],this);}},{'key':'_onMap_preRenderEvent','value':function _0x15b2ae(_0x4f0f1d){this['particleSystem']['canvasResize'](this['scene']['context']),this['addPrimitives'](),this['primitives']['show']=!![];}},{'key':'_onMapWhellEvent','value':function _0x22041c(_0x450d3e){var _0x4117a8=this;clearTimeout(this['refreshTimer']);if(!this['show']||!this['particleSystem'])return;this['primitives']['show']=![],this['refreshTimer']=setTimeout(function(){var _0x3a33d6=_0x3e3a;if(!_0x4117a8['show'])return;_0x4117a8[_0x3a33d6(0xe5)]();},0xc8);}},{'key':'_onMouseDownEvent','value':function _0x4681ca(_0x127122){this['mouse_down']=!![];}},{'key':_0x52cd92(0x166),'value':function _0x50a370(_0x4552d1){var _0xa4bd7e=_0x52cd92;if(!this['show']||!this['particleSystem'])return;this[_0xa4bd7e(0xe1)]&&(this[_0xa4bd7e(0xfb)][_0xa4bd7e(0x8c)]=![],this[_0xa4bd7e(0xe2)]=!![]);}},{'key':'_onMouseUpEvent','value':function _0x2f216(_0x526f74){var _0x3f0ef5=_0x52cd92;if(!this['show']||!this['particleSystem'])return;this['mouse_down']&&this['mouse_move']&&this['redraw'](),this[_0x3f0ef5(0xfb)]['show']=!![],this[_0x3f0ef5(0xe1)]=![],this[_0x3f0ef5(0xe2)]=![];}},{'key':'redraw','value':function _0x44e2f9(){var _0x522969=_0x52cd92;if(!this['_map']||!this['show'])return;this['updateViewerParameters'](),this['particleSystem']['applyViewerParameters'](this['viewerParameters']),this[_0x522969(0xfb)]['show']=!![];}},{'key':'setData','value':function _0x357c6c(_0x5fccdc){var _0x241036=_0x52cd92;this['_data']=_0x5fccdc,this['particleSystem']&&this[_0x241036(0x7f)][_0x241036(0x87)](),this['particleSystem']=new ParticleSystem(this['scene']['context'],_0x5fccdc,this['getOptions'](),this['viewerParameters']),this['addPrimitives']();}},{'key':_0x52cd92(0x80),'value':function _0x38e212(_0x296793,_0xeb0617){var _0x2aa8e7=_0x52cd92;if(_0x296793)for(var _0x46fe48 in _0x296793){this[_0x46fe48]=_0x296793[_0x46fe48];}this['particleSystem']&&this[_0x2aa8e7(0x7f)]['setOptions'](this['getOptions']());}},{'key':'getOptions','value':function _0xa55ef9(){var _0x2d3d31=_0x52cd92,_0x3e4baa=Math['ceil'](Math['sqrt'](this[_0x2d3d31(0x129)]));return this['particlesNumber']=_0x3e4baa*_0x3e4baa,{'particlesTextureSize':_0x3e4baa,'maxParticles':this['particlesNumber'],'particleHeight':this[_0x2d3d31(0xf4)],'fadeOpacity':this[_0x2d3d31(0xb9)],'dropRate':this['dropRate'],'dropRateBump':this['dropRateBump'],'speedFactor':this[_0x2d3d31(0x16c)],'lineWidth':this[_0x2d3d31(0xbe)],'colors':this['colors']};}},{'key':'addPrimitives','value':function _0x5ccf4b(){var _0x2c25c4=_0x52cd92;this['primitives']['add'](this['particleSystem']['particlesComputing'][_0x2c25c4(0xfb)]['getWind']),this[_0x2c25c4(0xfb)]['add'](this['particleSystem']['particlesComputing']['primitives'][_0x2c25c4(0x16d)]),this[_0x2c25c4(0xfb)]['add'](this['particleSystem']['particlesComputing']['primitives']['updatePosition']),this['primitives']['add'](this['particleSystem'][_0x2c25c4(0xb0)]['primitives']['postProcessingPosition']),this[_0x2c25c4(0xfb)][_0x2c25c4(0x100)](this['particleSystem']['particlesComputing']['primitives'][_0x2c25c4(0x72)]),this[_0x2c25c4(0xfb)]['add'](this[_0x2c25c4(0x7f)]['particlesRendering']['primitives']['segments']),this['primitives']['add'](this['particleSystem'][_0x2c25c4(0x8e)]['primitives']['trails']),this[_0x2c25c4(0xfb)][_0x2c25c4(0x100)](this['particleSystem']['particlesRendering']['primitives']['screen']);}},{'key':'updateViewerParameters','value':function _0x2c49c8(){var _0x114eb0=_0x52cd92,_0x1420b7=this[_0x114eb0(0xdd)]['computeViewRectangle'](this['scene']['globe']['ellipsoid']);if(!_0x1420b7){var _0x31869e=this[_0x114eb0(0x9b)]['getExtent']();_0x1420b7=Cesium$1[_0x114eb0(0xad)][_0x114eb0(0xc1)](_0x31869e['xmin'],_0x31869e['ymin'],_0x31869e['xmax'],_0x31869e['ymax']);}var _0x2ef0a4=Util['viewRectangleToLonLatRange'](_0x1420b7);this['viewerParameters'][_0x114eb0(0x74)]['x']=_0x2ef0a4['lon']['min'],this['viewerParameters']['lonRange']['y']=_0x2ef0a4['lon']['max'],this['viewerParameters'][_0x114eb0(0x11a)]['x']=_0x2ef0a4['lat']['min'],this['viewerParameters']['latRange']['y']=_0x2ef0a4['lat'][_0x114eb0(0x148)];var _0x5de819=this['camera'][_0x114eb0(0xe4)](this['globeBoundingSphere'],this['scene']['drawingBufferWidth'],this[_0x114eb0(0x153)]['drawingBufferHeight']);_0x5de819>0x0&&(this['viewerParameters']['pixelSize']=_0x5de819);}}]),_0xbe56fc;}(BaseLayer$1);mars3d__namespace['LayerUtil']['register']('wind',WindLayer),mars3d__namespace['layer']['WindLayer']=WindLayer;var CanvasParticle=(function(){function _0xac2579(){var _0x1e2e81=_0x3e3a;_classCallCheck(this,_0xac2579),this['lng']=null,this[_0x1e2e81(0x15b)]=null,this['tlng']=null,this['tlat']=null,this['age']=null;}return _createClass(_0xac2579,[{'key':'destroy','value':function _0x4623c8(){for(var _0x522c48 in this){delete this[_0x522c48];}}}]),_0xac2579;}()),CanvasWindField=(function(){var _0x346a12=_0x272d26;function _0x33b48f(_0x3fe285){_classCallCheck(this,_0x33b48f),this['setOptions'](_0x3fe285);}return _createClass(_0x33b48f,[{'key':_0x346a12(0xd8),'get':function _0x1387ee(){return this['_speedRate'];},'set':function _0x5df2b1(_0x1a77ed){var _0x71d4=_0x346a12;this['_speedRate']=(0x64-(_0x1a77ed>0x63?0x63:_0x1a77ed))*0x64,this['_calc_speedRate']=[(this[_0x71d4(0xe7)]-this['xmin'])/this['_speedRate'],(this[_0x71d4(0x10e)]-this[_0x71d4(0x11d)])/this['_speedRate']];}},{'key':'maxAge','get':function _0x3d882e(){return this['_maxAge'];},'set':function _0x158a33(_0x4e50c0){this['_maxAge']=_0x4e50c0;}},{'key':'setOptions','value':function _0x1680bb(_0x21a235){var _0xedc51=_0x346a12;this['options']=_0x21a235,this[_0xedc51(0x13d)]=_0x21a235[_0xedc51(0x13d)]||0x78,this['speedRate']=_0x21a235['speedRate']||0x32,this['particles']=[];var _0x3bc9cc=_0x21a235[_0xedc51(0x129)]||0x1000;for(var _0x130306=0x0;_0x130306<_0x3bc9cc;_0x130306++){var _0x824646=this['_randomParticle'](new CanvasParticle());this['particles'][_0xedc51(0x145)](_0x824646);}}},{'key':'setDate','value':function _0x3e28da(_0x372070){var _0x59e955=_0x346a12;this[_0x59e955(0xa3)]=_0x372070['rows'],this['cols']=_0x372070['cols'],this['xmin']=_0x372070['xmin'],this['xmax']=_0x372070['xmax'],this['ymin']=_0x372070['ymin'],this['ymax']=_0x372070['ymax'],this[_0x59e955(0xde)]=[];var _0x138e8d=_0x372070['udata'],_0x113ef3=_0x372070['vdata'],_0x20a0e4=![];_0x138e8d['length']===this['rows']&&_0x138e8d[0x0]['length']===this['cols']&&(_0x20a0e4=!![]);var _0x34d243=0x0,_0x1aaf95=null,_0x4b2d4b=null;for(var _0x53598f=0x0;_0x53598f<this[_0x59e955(0xa3)];_0x53598f++){_0x1aaf95=[];for(var _0x459d4f=0x0;_0x459d4f<this[_0x59e955(0x15f)];_0x459d4f++,_0x34d243++){_0x20a0e4?_0x4b2d4b=this['_calcUV'](_0x138e8d[_0x53598f][_0x459d4f],_0x113ef3[_0x53598f][_0x459d4f]):_0x4b2d4b=this['_calcUV'](_0x138e8d[_0x34d243],_0x113ef3[_0x34d243]),_0x1aaf95['push'](_0x4b2d4b);}this['grid']['push'](_0x1aaf95);}this['options']['reverseY']&&this['grid']['reverse']();}},{'key':'clear','value':function _0x562f3a(){var _0x2cf926=_0x346a12;delete this['rows'],delete this[_0x2cf926(0x15f)],delete this[_0x2cf926(0xb7)],delete this[_0x2cf926(0xe7)],delete this[_0x2cf926(0x11d)],delete this[_0x2cf926(0x10e)],delete this['grid'],delete this[_0x2cf926(0xf1)];}},{'key':'toGridXY','value':function _0x2808bb(_0x40e40c,_0x4024ca){var _0x548199=_0x346a12,_0x39f042=(_0x40e40c-this['xmin'])/(this[_0x548199(0xe7)]-this[_0x548199(0xb7)])*(this['cols']-0x1),_0x103a41=(this[_0x548199(0x10e)]-_0x4024ca)/(this['ymax']-this[_0x548199(0x11d)])*(this['rows']-0x1);return[_0x39f042,_0x103a41];}},{'key':'getUVByXY','value':function _0x714663(_0x271965,_0x2d3b37){var _0x579a1d=_0x346a12;if(_0x271965<0x0||_0x271965>=this['cols']||_0x2d3b37>=this['rows'])return[0x0,0x0,0x0];var _0x5178a6=Math['floor'](_0x271965),_0x346925=Math['floor'](_0x2d3b37);if(_0x5178a6===_0x271965&&_0x346925===_0x2d3b37)return this['grid'][_0x2d3b37][_0x271965];var _0x1a3fb3=_0x5178a6+0x1,_0x21868a=_0x346925+0x1,_0x2d03f8=this['getUVByXY'](_0x5178a6,_0x346925),_0x1b25e2=this[_0x579a1d(0xd5)](_0x1a3fb3,_0x346925),_0x326118=this['getUVByXY'](_0x5178a6,_0x21868a),_0x44c6c8=this['getUVByXY'](_0x1a3fb3,_0x21868a),_0x86586c=null;try{_0x86586c=this['_bilinearInterpolation'](_0x271965-_0x5178a6,_0x2d3b37-_0x346925,_0x2d03f8,_0x1b25e2,_0x326118,_0x44c6c8);}catch(_0x5445d4){console[_0x579a1d(0xbd)](_0x271965,_0x2d3b37);}return _0x86586c;}},{'key':'_bilinearInterpolation','value':function _0x31b658(_0x11e640,_0xa8bda5,_0x4f7a5d,_0x97c5b2,_0x8656b9,_0x4020eb){var _0x5c27b1=_0x346a12,_0x231218=0x1-_0x11e640,_0x4718b4=0x1-_0xa8bda5,_0x225315=_0x231218*_0x4718b4,_0x3c6f61=_0x11e640*_0x4718b4,_0x12dffb=_0x231218*_0xa8bda5,_0x1cf402=_0x11e640*_0xa8bda5,_0x454e69=_0x4f7a5d[0x0]*_0x225315+_0x97c5b2[0x0]*_0x3c6f61+_0x8656b9[0x0]*_0x12dffb+_0x4020eb[0x0]*_0x1cf402,_0x59d809=_0x4f7a5d[0x1]*_0x225315+_0x97c5b2[0x1]*_0x3c6f61+_0x8656b9[0x1]*_0x12dffb+_0x4020eb[0x1]*_0x1cf402;return this[_0x5c27b1(0x161)](_0x454e69,_0x59d809);}},{'key':_0x346a12(0x161),'value':function _0x961793(_0x5c789d,_0x58b893){var _0x14d75a=_0x346a12;return[+_0x5c789d,+_0x58b893,Math[_0x14d75a(0x131)](_0x5c789d*_0x5c789d+_0x58b893*_0x58b893)];}},{'key':'getUVByPoint','value':function _0xee7c5a(_0x189fb8,_0x5cf447){var _0x52a514=_0x346a12;if(!this['isInExtent'](_0x189fb8,_0x5cf447))return null;var _0x3779e1=this[_0x52a514(0xf2)](_0x189fb8,_0x5cf447),_0x4c2ca1=this['getUVByXY'](_0x3779e1[0x0],_0x3779e1[0x1]);return _0x4c2ca1;}},{'key':'isInExtent','value':function _0x2768db(_0x3a531f,_0xc750e){var _0x4ceec7=_0x346a12;return _0x3a531f>=this['xmin']&&_0x3a531f<=this['xmax']&&_0xc750e>=this['ymin']&&_0xc750e<=this[_0x4ceec7(0x10e)]?!![]:![];}},{'key':'getRandomLatLng','value':function _0xb7f1db(){var _0xc17622=_0x346a12,_0x15c714=fRandomByfloat(this[_0xc17622(0xb7)],this['xmax']),_0x280379=fRandomByfloat(this['ymin'],this['ymax']);return{'lat':_0x280379,'lng':_0x15c714};}},{'key':'getParticles','value':function _0x2e2fe1(){var _0x4dc3d5=_0x346a12,_0x271eb4,_0x28dc6c,_0x303efd;for(var _0xdee68=0x0,_0x452eae=this['particles']['length'];_0xdee68<_0x452eae;_0xdee68++){var _0x57639b=this['particles'][_0xdee68];_0x57639b[_0x4dc3d5(0x7a)]<=0x0&&(_0x57639b=this['_randomParticle'](_0x57639b));if(_0x57639b['age']>0x0){var _0x202da0=_0x57639b['tlng'],_0x1ba493=_0x57639b[_0x4dc3d5(0x168)];_0x303efd=this['getUVByPoint'](_0x202da0,_0x1ba493),_0x303efd?(_0x271eb4=_0x202da0+this[_0x4dc3d5(0x152)][0x0]*_0x303efd[0x0],_0x28dc6c=_0x1ba493+this[_0x4dc3d5(0x152)][0x1]*_0x303efd[0x1],_0x57639b['lng']=_0x202da0,_0x57639b[_0x4dc3d5(0x15b)]=_0x1ba493,_0x57639b['tlng']=_0x271eb4,_0x57639b['tlat']=_0x28dc6c,_0x57639b['age']--):_0x57639b['age']=0x0;}}return this[_0x4dc3d5(0xf1)];}},{'key':'_randomParticle','value':function _0x333b3c(_0x3981ec){var _0x18fef4=_0x346a12,_0x54067c,_0x5b8e29;for(var _0x371bb3=0x0;_0x371bb3<0x1e;_0x371bb3++){_0x54067c=this[_0x18fef4(0x12a)](),_0x5b8e29=this[_0x18fef4(0xb6)](_0x54067c[_0x18fef4(0x70)],_0x54067c[_0x18fef4(0x15b)]);if(_0x5b8e29&&_0x5b8e29[0x2]>0x0)break;}if(!_0x5b8e29)return _0x3981ec;var _0x9bf577=_0x54067c['lng']+this['_calc_speedRate'][0x0]*_0x5b8e29[0x0],_0x164499=_0x54067c[_0x18fef4(0x15b)]+this['_calc_speedRate'][0x1]*_0x5b8e29[0x1];return _0x3981ec['lng']=_0x54067c['lng'],_0x3981ec['lat']=_0x54067c['lat'],_0x3981ec[_0x18fef4(0x71)]=_0x9bf577,_0x3981ec[_0x18fef4(0x168)]=_0x164499,_0x3981ec[_0x18fef4(0x7a)]=Math['round'](Math[_0x18fef4(0xa0)]()*this[_0x18fef4(0x13d)]),_0x3981ec;}},{'key':'destroy','value':function _0x592b0e(){for(var _0x559eca in this){delete this[_0x559eca];}}}]),_0x33b48f;}());function fRandomByfloat(_0x59e3ae,_0x499fc7){return _0x59e3ae+Math['random']()*(_0x499fc7-_0x59e3ae);}var Cesium=mars3d__namespace['Cesium'],BaseLayer=mars3d__namespace[_0x272d26(0xac)]['BaseLayer'],CanvasWindLayer=function(_0x4b34fd){var _0x310532=_0x272d26;_inherits(_0x114a44,_0x4b34fd);var _0x5a2378=_createSuper(_0x114a44);function _0x114a44(){var _0x360ad1,_0x260ca5=arguments['length']>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};return _classCallCheck(this,_0x114a44),_0x360ad1=_0x5a2378['call'](this,_0x260ca5),_0x360ad1['_setOptionsHook'](_0x260ca5),_0x360ad1['canvas']=null,_0x360ad1;}return _createClass(_0x114a44,[{'key':_0x310532(0x80),'value':function _0x30dc9d(_0x34444a,_0x5dc41f){var _0x2f3f8d=_0x310532,_0x501f09,_0x4b7af3,_0x5a3c89;this['frameTime']=0x3e8/(_0x34444a['frameRate']||0xa),this['_pointerEvents']=(_0x501f09=this[_0x2f3f8d(0x93)][_0x2f3f8d(0x158)])!==null&&_0x501f09!==void 0x0?_0x501f09:![],this['color']=_0x34444a[_0x2f3f8d(0xaf)]||'#ffffff',this['lineWidth']=_0x34444a['lineWidth']||0x1,this['fixedHeight']=(_0x4b7af3=_0x34444a['fixedHeight'])!==null&&_0x4b7af3!==void 0x0?_0x4b7af3:0x0,this['reverseY']=(_0x5a3c89=_0x34444a['reverseY'])!==null&&_0x5a3c89!==void 0x0?_0x5a3c89:![],this[_0x2f3f8d(0xce)]&&this['windField'][_0x2f3f8d(0x108)](_0x34444a);}},{'key':'layer','get':function _0x38e90c(){return this['canvas'];}},{'key':'canvasWidth','get':function _0x1f63d4(){var _0x55ba0f=_0x310532;return this[_0x55ba0f(0x9b)]['scene'][_0x55ba0f(0x79)]['clientWidth'];}},{'key':'canvasHeight','get':function _0x5bc9b5(){var _0x307363=_0x310532;return this['_map'][_0x307363(0x153)]['canvas']['clientHeight'];}},{'key':'pointerEvents','get':function _0x1cc051(){return this['_pointerEvents'];},'set':function _0x1e8920(_0x5a2524){var _0x4a6d82=_0x310532;this['_pointerEvents']=_0x5a2524;if(!this['canvas'])return;_0x5a2524?this[_0x4a6d82(0x79)]['style'][_0x4a6d82(0x13b)]=_0x4a6d82(0xa1):this['canvas']['style']['pointer-events']='none';}},{'key':'particlesNumber','get':function _0x527aa0(){return this['options']['particlesNumber'];},'set':function _0x195b26(_0x59ccdc){var _0x569568=_0x310532,_0x3a0e97=this;this['options'][_0x569568(0x129)]=_0x59ccdc,clearTimeout(this[_0x569568(0x121)]),this['_canrefresh']=setTimeout(function(){_0x3a0e97['redraw']();},0x1f4);}},{'key':'speedRate','get':function _0x4dfcf1(){return this['options']['speedRate'];},'set':function _0x3b0675(_0x39b935){var _0x16fa14=_0x310532;this['options']['speedRate']=_0x39b935,this['windField']&&(this[_0x16fa14(0xce)]['speedRate']=_0x39b935);}},{'key':'maxAge','get':function _0x2856fb(){return this['options']['maxAge'];},'set':function _0x2aebdd(_0xce0c26){var _0x2c6f6f=_0x310532;this['options'][_0x2c6f6f(0x13d)]=_0xce0c26,this['windField']&&(this[_0x2c6f6f(0xce)]['maxAge']=_0xce0c26);}},{'key':'data','get':function _0x4268a3(){return this['windData'];},'set':function _0x4dbfc5(_0xc64244){var _0x11342d=_0x310532;this[_0x11342d(0xc0)](_0xc64244);}},{'key':_0x310532(0x14a),'value':function _0x493ba3(_0xbbe7b7){var _0x5808a3=_0x310532;_0xbbe7b7?this['_addedHook']():(this['windData']&&(this['options']['data']=this[_0x5808a3(0x92)]),this['_removedHook']());}},{'key':'_mountedHook','value':function _0x202418(){var _0x3694b0=_0x310532;this[_0x3694b0(0x93)][_0x3694b0(0x98)]?this['initWorker']():this[_0x3694b0(0xce)]=new CanvasWindField(this['options']);}},{'key':'_addedHook','value':function _0xcb30ac(){var _0x574aa3=_0x310532;this[_0x574aa3(0x79)]=this[_0x574aa3(0xa4)](),this['canvasContext']=this['canvas']['getContext']('2d',{'willReadFrequently':!![]}),this['bindEvent'](),this['options'][_0x574aa3(0x11f)]&&this['setData'](this[_0x574aa3(0x93)]['data']);}},{'key':'_removedHook','value':function _0x1a01d4(){var _0x2fb042=_0x310532;this['clear'](),this['unbindEvent'](),this[_0x2fb042(0x79)]&&(this[_0x2fb042(0x9b)]['container']['removeChild'](this['canvas']),delete this['canvas']);}},{'key':'_createCanvas','value':function _0x6cd8b8(){var _0xec520b=_0x310532,_0x377fb7,_0x2a3072=mars3d__namespace[_0xec520b(0x8f)]['create'](_0xec520b(0x79),'mars3d-canvasWind',this['_map']['container']);return _0x2a3072['style'][_0xec520b(0x15c)]='absolute',_0x2a3072['style']['top']='0px',_0x2a3072['style']['left']='0px',_0x2a3072[_0xec520b(0x7e)]['width']=this['_map']['scene'][_0xec520b(0x79)]['clientWidth']+'px',_0x2a3072['style']['height']=this['_map']['scene']['canvas']['clientHeight']+'px',_0x2a3072[_0xec520b(0x7e)]['pointerEvents']=this[_0xec520b(0x149)]?'auto':'none',_0x2a3072['style'][_0xec520b(0xb5)]=(_0x377fb7=this['options'][_0xec520b(0xb5)])!==null&&_0x377fb7!==void 0x0?_0x377fb7:0x9,_0x2a3072['width']=this['_map']['scene'][_0xec520b(0x79)]['clientWidth'],_0x2a3072['height']=this['_map']['scene']['canvas']['clientHeight'],_0x2a3072;}},{'key':_0x310532(0xd3),'value':function _0x42944b(){var _0x2f8911=_0x310532;this['canvas']&&(this['canvas']['style']['width']=this[_0x2f8911(0x9b)]['scene']['canvas']['clientWidth']+'px',this['canvas']['style'][_0x2f8911(0x96)]=this[_0x2f8911(0x9b)][_0x2f8911(0x153)][_0x2f8911(0x79)]['clientHeight']+'px',this['canvas']['width']=this['_map'][_0x2f8911(0x153)]['canvas']['clientWidth'],this[_0x2f8911(0x79)]['height']=this['_map'][_0x2f8911(0x153)][_0x2f8911(0x79)][_0x2f8911(0x12f)]);}},{'key':'bindEvent','value':function _0xe77f56(){var _0x5a9ef2=_0x310532,_0x66a0d9=this,_0xefe471=Date['now']();(function _0x92881b(){var _0x5aa450=_0x3e3a;_0x66a0d9['animateFrame']=window['requestAnimationFrame'](_0x92881b);if(_0x66a0d9['show']&&_0x66a0d9[_0x5aa450(0xce)]){var _0x15ac23=Date['now'](),_0x194a05=_0x15ac23-_0xefe471;_0x194a05>_0x66a0d9['frameTime']&&(_0xefe471=_0x15ac23-_0x194a05%_0x66a0d9['frameTime'],_0x66a0d9[_0x5aa450(0x14d)]());}}(),window['addEventListener']('resize',this['resize']['bind'](this),![]),this['mouse_down']=![],this['mouse_move']=![],this['options'][_0x5a9ef2(0x13c)]&&(this['_map']['on'](mars3d__namespace[_0x5a9ef2(0xf0)]['wheel'],this['_onMapWhellEvent'],this),this[_0x5a9ef2(0x9b)]['on'](mars3d__namespace[_0x5a9ef2(0xf0)][_0x5a9ef2(0x77)],this[_0x5a9ef2(0x112)],this),this['_map']['on'](mars3d__namespace['EventType'][_0x5a9ef2(0x85)],this['_onMouseUpEvent'],this)));}},{'key':_0x310532(0x105),'value':function _0x9a2c02(){var _0x142663=_0x310532;window['cancelAnimationFrame'](this['animateFrame']),delete this[_0x142663(0x132)],window[_0x142663(0xb3)]('resize',this['resize']),this['options']['mouseHidden']&&(this['_map']['off'](mars3d__namespace[_0x142663(0xf0)]['wheel'],this['_onMapWhellEvent'],this),this['_map'][_0x142663(0xa7)](mars3d__namespace[_0x142663(0xf0)]['mouseDown'],this['_onMouseDownEvent'],this),this['_map'][_0x142663(0xa7)](mars3d__namespace[_0x142663(0xf0)][_0x142663(0x85)],this['_onMouseUpEvent'],this),this['_map']['off'](mars3d__namespace[_0x142663(0xf0)]['mouseMove'],this[_0x142663(0x166)],this));}},{'key':'_onMapWhellEvent','value':function _0x250db8(_0x1df4e4){var _0x2b8eeb=_0x310532,_0x3c4991=this;clearTimeout(this['refreshTimer']);if(!this['show']||!this[_0x2b8eeb(0x79)])return;this['canvas']['style'][_0x2b8eeb(0x9f)]='hidden',this['refreshTimer']=setTimeout(function(){var _0x12a71b=_0x2b8eeb;if(!_0x3c4991['show'])return;_0x3c4991['redraw'](),_0x3c4991['canvas']['style'][_0x12a71b(0x9f)]='visible';},0xc8);}},{'key':'_onMouseDownEvent','value':function _0x522b31(_0x257c26){var _0x2b72b7=_0x310532;this['mouse_down']=!![],this[_0x2b72b7(0x9b)]['off'](mars3d__namespace[_0x2b72b7(0xf0)]['mouseMove'],this['_onMouseMoveEvent'],this),this['_map']['on'](mars3d__namespace['EventType']['mouseMove'],this[_0x2b72b7(0x166)],this);}},{'key':'_onMouseMoveEvent','value':function _0x5db74b(_0x300dbf){var _0x1ab59e=_0x310532;if(!this[_0x1ab59e(0x8c)]||!this['canvas'])return;this['mouse_down']&&(this['canvas']['style']['visibility']=_0x1ab59e(0x75),this['mouse_move']=!![]);}},{'key':'_onMouseUpEvent','value':function _0x4aaf05(_0x1a49a0){var _0xb12f0b=_0x310532;if(!this[_0xb12f0b(0x8c)]||!this[_0xb12f0b(0x79)])return;this['_map']['off'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this),this['mouse_down']&&this['mouse_move']&&this['redraw'](),this[_0xb12f0b(0x79)][_0xb12f0b(0x7e)]['visibility']='visible',this['mouse_down']=![],this[_0xb12f0b(0xe2)]=![];}},{'key':'setData','value':function _0x1e6210(_0x2b2c31){var _0x2bc5eb=_0x310532;this[_0x2bc5eb(0xf6)](),this['windData']=_0x2b2c31,this[_0x2bc5eb(0xce)]['setDate'](_0x2b2c31),this['redraw']();}},{'key':'redraw','value':function _0x10c6a3(){var _0x512d98=_0x310532;if(!this[_0x512d98(0x8c)])return;this['windField']['setOptions'](this['options']),this['update']();}},{'key':_0x310532(0x14d),'value':function _0x2ab68e(){var _0x31f323=_0x310532;if(this[_0x31f323(0x120)])return;this['_updateIng']=!![];if(this['worker'])this['windField'][_0x31f323(0x14d)]();else{var _0x8eae4=this['windField'][_0x31f323(0x12c)]();this[_0x31f323(0x83)](_0x8eae4);}this[_0x31f323(0x120)]=![];}},{'key':'_drawLines','value':function _0x59105b(_0x461745){var _0x236cb3=_0x310532;this['canvasContext'][_0x236cb3(0x102)]='destination-in',this[_0x236cb3(0xcb)]['fillRect'](0x0,0x0,this['canvasWidth'],this['canvasHeight']),this['canvasContext']['globalCompositeOperation']='lighter',this['canvasContext'][_0x236cb3(0x10a)]=0.9,this['canvasContext'][_0x236cb3(0x165)](),this[_0x236cb3(0xcb)]['lineWidth']=this[_0x236cb3(0xbe)],this['canvasContext']['strokeStyle']=this['color'];var _0x5a0b48=this['_map']['scene']['mode']!==Cesium[_0x236cb3(0x9e)][_0x236cb3(0xc2)],_0x2d3cc9=this[_0x236cb3(0x107)]*0.25;for(var _0x496363=0x0,_0x4e0117=_0x461745['length'];_0x496363<_0x4e0117;_0x496363++){var _0x4028bd=_0x461745[_0x496363],_0x3c6391=this[_0x236cb3(0xab)](_0x4028bd['lng'],_0x4028bd[_0x236cb3(0x15b)],_0x4028bd),_0x10439a=this[_0x236cb3(0xab)](_0x4028bd['tlng'],_0x4028bd['tlat'],_0x4028bd);if(!_0x3c6391||!_0x10439a)continue;if(_0x5a0b48&&Math['abs'](_0x3c6391[0x0]-_0x10439a[0x0])>=_0x2d3cc9)continue;this['canvasContext']['moveTo'](_0x3c6391[0x0],_0x3c6391[0x1]),this['canvasContext']['lineTo'](_0x10439a[0x0],_0x10439a[0x1]);}this[_0x236cb3(0xcb)][_0x236cb3(0x162)]();}},{'key':'_tomap','value':function _0x17996b(_0x24074f,_0x503ca1,_0x508a6b){var _0x1b6516=_0x310532,_0x1cb11a=Cesium['Cartesian3']['fromDegrees'](_0x24074f,_0x503ca1,this['fixedHeight']),_0x5a3f4b=this[_0x1b6516(0x9b)]['scene'];if(_0x5a3f4b[_0x1b6516(0xc5)]===Cesium[_0x1b6516(0x9e)]['SCENE3D']){var _0x27ae93=new Cesium['EllipsoidalOccluder'](_0x5a3f4b[_0x1b6516(0xb8)]['ellipsoid'],_0x5a3f4b[_0x1b6516(0xdd)][_0x1b6516(0xdc)]),_0x114ac8=_0x27ae93[_0x1b6516(0x156)](_0x1cb11a);if(!_0x114ac8)return _0x508a6b['age']=0x0,null;}var _0x27386e=Cesium['SceneTransforms']['wgs84ToWindowCoordinates'](this['_map'][_0x1b6516(0x153)],_0x1cb11a);return _0x27386e?[_0x27386e['x'],_0x27386e['y']]:null;}},{'key':'clear','value':function _0x28c894(){var _0x97fa2d=_0x310532;this[_0x97fa2d(0xce)][_0x97fa2d(0xf6)](),delete this['windData'];}},{'key':'initWorker','value':function _0x4a46a9(){var _0x38b8a4=_0x310532,_0x25680f=this;this['worker']=new Worker(this['options'][_0x38b8a4(0x98)]),this['worker']['onmessage']=function(_0x575ca0){var _0x213ded=_0x38b8a4;_0x25680f[_0x213ded(0x83)](_0x575ca0['data']['particles']),_0x25680f['_updateIng2']=![];},this['windField']={'init':function _0x2fd0e2(_0x350b8b){var _0x2cc235=_0x38b8a4;_0x25680f['worker'][_0x2cc235(0xc7)]({'type':'init','options':_0x350b8b});},'setOptions':function _0x4a87d4(_0x47103a){var _0x28348f=_0x38b8a4;_0x25680f[_0x28348f(0x98)]['postMessage']({'type':_0x28348f(0x108),'options':_0x47103a});},'setDate':function _0x57c4f5(_0x39a9d8){var _0x36502c=_0x38b8a4;_0x25680f['worker']['postMessage']({'type':_0x36502c(0xdf),'data':_0x39a9d8});},'update':function _0xb6fb30(){var _0x5b65b5=_0x38b8a4;if(_0x25680f[_0x5b65b5(0xd7)])return;_0x25680f[_0x5b65b5(0xd7)]=!![],_0x25680f['worker']['postMessage']({'type':'update'});},'clear':function _0xb8c274(){_0x25680f['worker']['postMessage']({'type':'clear'});}},this['windField']['init'](this[_0x38b8a4(0x93)]);}}]),_0x114a44;}(BaseLayer);mars3d__namespace[_0x272d26(0x139)]['register'](_0x272d26(0x13e),CanvasWindLayer),mars3d__namespace['layer']['CanvasWindLayer']=CanvasWindLayer,mars3d__namespace[_0x272d26(0xfa)]=CanvasWindField,mars3d__namespace[_0x272d26(0x155)]=WindUtil,exports['CanvasWindField']=CanvasWindField,exports['CanvasWindLayer']=CanvasWindLayer,exports['WindLayer']=WindLayer,exports[_0x272d26(0x155)]=WindUtil,Object['defineProperty'](exports,'__esModule',{'value':!![]});
}));