PageSourceSearch

https://spacein3d.com/dist/721-0.3.9-0f431da01c513edb8e3a.min.js

js spacein3d.com collected 2026-10-06 15:03:39 UTC 138,774 bytes, 1 lines download raw bytes

1(self.webpackChunkSpaceIn3D=self.webpackChunkSpaceIn3D||[]).push([[721],{1741:(e,t,a)=>{"use strict";a.d(t,{J:()=>l,T:()=>h});a(7327),a(8309),a(2481),a(86);var r=a(8852),n=a(4895),o=a(5490);var i=a(211),s=a(8535).Helpers;function l(e){var t="milkyway",a=s.getRenderer();if(!a)throw"Renderer not found for "+t;var n=this;r.Mesh.call(this);this.geometry=new r.SphereGeometry(e,8,2/3*8),this.geometry.name=t,this.material=new r.ShaderMaterial({uniforms:{texture:{type:"t",value:void 0}},vertexShader:"varying vec2 vUV;\r\nvarying float vDensity;\r\nvarying float vDiff;\r\n\r\nvoid main() {\r\n\tvUV = uv;\r\n\tvec4 pos = vec4(position, 1.0);\r\n\tgl_Position = projectionMatrix * modelViewMatrix * pos;\r\n}",fragmentShader:"uniform sampler2D texture;\r\nvarying vec2 vUV;\r\n\r\nvoid main() {\r\n\tvec4 sample = texture2D(texture, vUV);\r\n\tgl_FragColor = vec4(sample.xyz, sample.w);\r\n}"}),this.material.side=r.BackSide;var o=[256,2048,4096];o=o.filter((function(e){return e<=a.maxTextureSize}));var i=t+"-"+Math.max.apply(Math,o);(new r.TextureLoader).load(s.texUrlPrefix+i+".jpg",(function(e){n.material.uniforms.texture.value=e})),this.name="SpaceBox",this.rotateX(Math.degToRad(122)),this.rotateY(Math.degToRad(-29)),this.rotateZ(Math.degToRad(94)),this.updateMatrix(),this.matrixAutoUpdate=!1}function c(e,t,a,o,l,c){var d=this;r.Mesh.call(this),n.Z.call(this),this.subject=new i.xQ;var u=this,h=null!=t.O,p=t.min,m=t.radius*S3D.MToLocal;this.radius=m;var f=(new r.TextureLoader).load(s.texUrlPrefix+t.name+a,void 0,void 0,(function(){console.log("Tex error "+t.name)}));this.material=new r.MeshLambertMaterial({map:f}),this.material.name=t.name+a,this.positionIsValid=!1;var g=new r.Vector3,y=new r.Vector3,b=new r.Vector3,w=new r.Vector3,v=new r.Vector3,S=new r.Vector3,M=new r.Vector3;this.distanceToCamera=1/0,this.worldPosition=new r.Vector3;new r.Vector3;Object.defineProperties(this,{positionDelta:{enumerable:!0,get:function(){return g}},positionEph:{enumerable:!0,get:function(){return w}}});var D=0;this.sizing=function(t,a,r){var n=u.worldPosition.distanceTo(t.worldPosition);a&&(u.distanceToCamera=n),a&&(D=e.useTrueObjectSizing?0:p/t.zoom),a&&d.subject.next({name:d.name,distanceToCamera:n*S3D.LocalToKm});var o=D*n;return o=r||m>=o?m:o},this.update=function(){this.rendered=!1},this.move=function(t){b.copy(w),y.copy(this.position),w.copy(t),this.position.addVectors(w,S),h?this.getWorldPosition(this.worldPosition):this.worldPosition.copy(this.position),this.positionIsValid&&
1(g.subVectors(this.position,y),v.subVectors(w,b),M.subVectors(g,v).length()),this.positionIsValid=!0,null!=this.halo&&(this.halo.material.uniforms.viewVector.value=e.camera.worldPosition.clone().sub(e.sun.position))},this.setOffset=function(e){S.copy(e)},this.name=t.name,this.geometry.name=t.name,this.scale.copy(new r.Vector3(m,m,m)),e.scene.add(this);var T=new r.Box3(new r.Vector3(-1,-1,0),new r.Vector3(1,1,1)),A=new r.Vector3;this.inNDC=!1;var P=new r.Vector2;if(this.project=function(e){return A.copy(this.position).project(e),this.inNDC=T.containsPoint(A),P.copy(A)},t.label&&(this.add(this.label=new r.Group),this.label.name="LabelEmpty"),this.onAfterRender=function(){return d.rendered=!0},c){var j=new r.AxesHelper(5);j.visible=!1,j.name="Helper",this.add(j)}}function d(e,t,a){var n=e||new r.SphereGeometry(1,32,32),o=THREEx.createAtmosphereMaterial();o.side=r.BackSide,o.uniforms.coeficient.value=-.02,o.uniforms.power.value=4,o.uniforms.glowColor.value=a,r.Mesh.call(this,n,o),this.name="Atmosphere";this.scale.multiplyScalar(1.2*t)}function u(e,t,a,n,o){if(!(e=s.getRenderer()))throw"Renderer not found for "+t.name;var i=null!=t.min?t.min/2:.0025;c.call(this,e,t,".jpg",a,n,o);var l=this.sizing,u=t.siderealDay;if(u/=360,u=1/(u/=1e3),u=Math.degToRad(u),!(this.geometry=s.mobileAndTablet?S3D.getDefaultGeometry("SphereGeometry",64):S3D.getDefaultGeometry("SphereGeometry",32)))throw new Error("Geometry not found");if(t.atm){var h=(t.atm/1e3/s.LocalScale+this.radius)/this.radius,p=new r.Color("white");p.lerp(new r.Color(t.color),.5),s.debug&&this.add(new d(this.geometry,h,p))}this.orient=function(e,t){var a=-Math.clamp(u*e,-1*t,1*t);this.rotateY(a)},this.sizing=function(e,t,a){var r=l(e,t,a);this.scale.set(r,r,r),this.updateMatrixWorld(),null!=this.halo&&this.halo.scale.copy(this.scale).multiplyScalar(this.halo.relativeScale)},this.getTrueScalingDistance=function(){var t=e.useTrueObjectSizing?0:i/e.camera.zoom;return radius/t},this.reset=function(){this.rotation.set(0,0,0),"2018LA"===page.name&&this.name},this.reset()}function h(e,t,a,r,n){u.call(this,e,t),o.Z.call(this),this.material.emissive.setHex(8947848),this.material.depthWrite=!1}function p(e){r.Group.call(this),this.name="SpaceLabel "+e.name,e.add(this)}function m(e,t){r.Mesh.call(this);var a=".jpg";this.geometry=s.mobileAndTablet?PlanetSphereGeometryMOB:PlanetSphereGeometryDT,this.geometry.name=t;var n=(new r.TextureLoader).load(s.texUrlPrefix+t+a);return n.wrapS=r.RepeatWrapping,n.wrapT=r.RepeatWrapping,n.repeat.set(1,1),this.material=new r.MeshLambertMaterial({map:n}),this.material.name=t+a,this.name=t,e.add(this),this}function f(e,t,a){if(null!=s.supportsAdvancedShading){r.Mesh.call(this),Object.defineProperty(this,"relativeScale",{enumerable:!0,value:2.78});var n=new r.ShaderMaterial({uniforms:{c:{type:"f",value:.1},p:{type:"f",value:2.1},factor:{type:"f",value:.1},glowColor:{type:"c",value:a},viewVector:{type:"v3",value:new r.Vector3}},vertexShader:"uniform vec3 viewVector;\r\nuniform float c;\r\nuniform float p;\r\nvarying float intensity;\r\n\r\nvoid main() {\r\n\tvec3 vNormal = normalize(normalMatrix * normal);\r\n\tvec3 vNormel = normalize(normalMatrix * viewVector);\r\n\r\n\t//intensity = pow( 0.1 - dot( vNormal, vNormel ), 2.0 );\r\n\tintensity = pow(c - dot(vNormal, vNormel), p);\r\n\tintensity = clamp(intensity, 0.0, intensity);\t// prevent value from going negative\r\n\r\n\tgl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\r\n}\r\n",fragmentShader:"uniform vec3 glowColor;\r\nvarying float intensity;\r\nuniform float factor;\r\n\r\nvoid main() {\r\n\tgl_FragColor = vec4(glowColor, 1.0) * intensity + vec4(factor, factor, factor, 0.0);\r\n}\r\n",side:r.BackSide,blending:r.AdditiveBlending});if(!(this.geometry=s.mobileAndTablet?S3D.getDefaultGeometry("SphereGeometry",64):S3D.getDefaultGeometry("SphereGeometry",32)))throw new Error("Geometry not found");this.scale.set(this.relativeScale,this.relativeScale,this.relativeScale),this.name=t+"Halo",this.material=n,e.scene.add(this)}}l.prototype=Object.create(r.Mesh.prototype),l.prototype.constructor=l,c.prototype=Object.create(r.Mesh.prototype),c.prototype.constructor=c,d.prototype=Object.create(r.Mesh.prototype),d.prototype.constructor=d,window.SpaceObjectAtmosphere=d,u.prototype=Object.create(c.prototype),u.prototype.constructor=u,h.prototype=Object.create(u.prototype),h.prototype.constructor=h,p.prototype=Object.create(r.Group.prototype),p.prototype.constructor=p,window.SpaceLabel=p,m.prototype=Object.create(r.Mesh.prototype),m.prototype.constructor=m,f.prototype=Object.create(r.Mesh.prototype),f.prototype.constructor=f},4895:(e,t,a)=>{"use strict";a.d(t,{Z:()=>r});a(9601);const r=function(){Object.assign(this,{start:function(){},reset:function(){},update:function(){}})}},5490:(e,t,a)=>{"use strict";a.d(t,{Z:()=>r});a(9601);const r=function(){Object.assign(this,{hide:!1,positionIsValid:!1,distanceToCamera:1/0})}},3721:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>z});a(8309),a(9601),a(1539),a(8674);var r=a(8852);a(2526),a(1817),a(3290),a(9826),a(4553),a(9554),a(6992),a(7941),a(9714),a(8783),a(4747),a(3948),a(285),a(8264),a(9575),a(4197),a(6495),a(2990),a(8927),a(3105),a(5035),a(4345),a(7174),a(2846),a(4731),a(7209),a(6319),a(8867),a(7789),a(3739),a(9368),a(4483),a(2056),a(3462),a(678),a(7462),a(3824),a(5021),a(2974),a(5016);function n(){var e=URL.createObjectURL(new Blob(["(",function(){var e,t;Math.degToRad||(Math.degToRad=function(e){return e*Math.PI/180}),Math.mod||(Math.mod=function(e,t){return(e%t+t)%t}),Date.prototype.getUTCJulian||(Date.prototype.getUTCJulian=function(){return this.getTime()/864e5+2440587.5});var a=864e5;function r(e){var t=[];return e.forEach((function(e){t.push(e.dateObj.getTime())})),t}function n(e,t){for(var a=new ArrayBuffer(3*e.length*8),r=new Float64Array(a),n=0;n<e.length;n++)r[3*n+0]=e[n].x,r[3*n+1]=e[n].y,r[3*n+2]=e[n].z;return a}function o(e){for(var t=new ArrayBuffer(3*e.length*4),a=new Float32Array(t),r=0;r<e.length-1;r++){var n=e[r+1].x-e[r].x,o=e[r+1].y-e[r].y,i=e[r+1].z-e[r].z,s=(e[r+1].dateObj-e[r].dateObj)/36e5;a[3*r+0]=n/s,a[3*r+1]=o/s,a[3*r+2]=i/s}return t}function i(e){for(var t=new ArrayBuffer(4*e.length),a=new Float32Array(t),r=0;r<e.length;r++)a[r]=e[r].vSn;return t}self.onmessage=function(s){var l,c=s.data,d=c.item.name;e=c.elements,t=c.standards,self.importScripts(c.functions);var u,h=[];if(0!==e.elements.semiMajor){null!=e.elements.meanMotion&&(l=360/e.elements.meanMotion);var p=1e3;e.elements.eccentricity>.7&&(p=200),e.elements.eccentricity>.9&&(p=100),e.elements.eccentricity>.95&&(p=50),e.elements.eccentricity>.98&&(p=10),e.elements.eccentricity>.99&&(p=5);var m=Math.min(l,t.DAYSPERTROPICALYEAR*p);u=m<l;var f=m/c.stepsPerOrbit;f*=a;var g=new Date(Date.now()),y=new Date(g.getTime()-m*a/2),b=new Date(y.getTime()+m*a),w="Ecliptic"==c.item.Ref;u&&console.log("Truncated "+d+" orbit from "+y+" to "+b+" (step "+f+")"),h=function(t,r,n,o){var i=[],s=self.computePosition;if(null==s)return console.log("cP is null"),null;function l(e,t){this.dateObj=e,this.x=t.x,this.y=t.y,this.z=t.z}for(var c=r>a,d=r>36e5,u=r>6e4,h=t,p=!0;h<n;h.setTime(h.getTime()+r),p=!1){var m=new Date(h.getTime());!p&&c&&m.setUTCHours(0),!p&&d&&m.setUTCMinutes(0),!p&&u&&m.setUTCSeconds(0),m.setUTCMilliseconds(0),i.push(new l(m,s(e,m,o)))}return i.push(new l(new Date(n.getTime()),s(e,n,o))),i}(y,f,b,w),h.forEach((function(e,t,a){if(t+1<a.length){var r=a[t],n=a[t+1],o=n.dateObj-r.dateObj,i={x:n.x-r.x,y:n.y-r.y,z:n.z-r.z},s=Math.sqrt(i.x*i.x+i.y*i.y+i.z*i.z);if(0!=o){var l=1e6*s/(o/1e3);a[t].vSn=l}else console.log("Error index "+t+" for date "+r.dateObj)}})),c.item.fullOrbit=!0}else h=[{dateObj:new Date(0),x:0,y:0,z:0},{dateObj:new Date(1),x:0,y:0,z:0}],u=!0;if(null!=h){var v={result:"SC for object "+d+" done ",success:!0,item:c.item,elements:c.elements,numberLocations:h.length,dates:r(h),positionHighPAb:n(h),velocityAb:o(h),vSnAb:i(h),orbitTruncated:u};postMessage(v,[v.positionHighPAb,v.velocityAb,v.vSnAb])}else{var S={result:"SC fail for "+c.item.name,success:!1,item:c.item,elements:c.elements};console.log("worker1b send "+S.item.name),postMessage(S)}}}.toString(),")()"],{type:"application/javascript"}));return new Worker(e)}function o(){var e=URL.createObjectURL(new Blob(["(",function(){self.onmessage=function(e){var t,a,r=e.data;function n(e){var t=[];return e.forEach((function(e){t.push(e.date)})),t}function o(e){for(var t=new ArrayBuffer(3*e.length*8),a=new Float64Array(t),r=0;r<e.length;r++)a[3*r+0]=e[r].x,a[3*r+1]=e[r].y,a[3*r+2]=e[r].z;return t}function i(e){for(var t=new ArrayBuffer(3*e.length*4),a=new Float32Array(t),r=0;r<e.length-1;r++)a[3*r+0]=0,a[3*r+1]=0,a[3*r+2]=0;return t}function s(e){for(var t=new ArrayBuffer(4*e.length),a=new Float32Array(t),r={x:0,y:0,z:0},n=0;n<e.length-1;n++){var o=e[n+1].x-e[n].x,i=e[n+1].y-e[n].y,s=e[n+1].z-e[n].z,l=(e[n+1].date-e[n].date)/1e3;r.x=1e6*o/l,r.y=1e6*i/l,r.z=1e6*s/l,a[n]=Math.sqrt(r.x*r.x+r.y*r.y+r.z*r.z)}return t}(t=new XMLHttpRequest).open("GET",r.itemUrl,!0),t.onload=function(){try{t.status>=200&&t.status<400?function(){if(!((a=JSON.parse(t.responseText)).length>0))throw"pRC no e-data found "+r.item.name;var e={result:"pR done "+r.item.name,success:!0,item:r.item,numberLocations:a.length,dates:n(a),positionHighPAb:o(a),velocityAb:i(a),vSnAb:s(a),positionsAbsolutized:!0};postMessage(e,[e.positionHighPAb,e.velocityAb,e.vSnAb])}():postMessage({result:"iRC fail "+t.status+" "+r.item.name,success:!1})}catch(e){postMessage({result:"Caught exception iRC.ol "+e,success:!1})}},t.onerror=function(){postMessage({result:"iRC error "+r.item.name,success:!1})},t.send()}}.toString(),")()"],{type:"application/javascript"}));return new Worker(e)}var i=a(8072);a(86);function s(e){var t=e.item;this.objectData=e.item;var a=e.elements;this.elements=a,this.data=e,this.positionArray=e.positionArray,this.positionsView=e.positionHighPAb?new Float64Array(e.positionHighPAb):void 0,this.dRngView=e.dRngAb?new Float32Array(e.dRngAb):void 0,this.vSnView=e.vSnAb?new Float32Array(e.vSnAb):void 0,this.velocityArray=e.velocityArray,Object.defineProperties(this,{sched:{enumerable:!0,get:function(){return console.warn("Deprecated - use other means"),e.ephemerisSchedule}},item:{enumerable:!0,get:function(){return t}},name:{enumerable:!0,get:function(){return t.name}},size:{enumerable:!0,value:null!=t.size?t.size:a&&null!=a.size?a.size:1},atmosphere:{enumerable:!0,value:null!=t.atm?t.atm:a&&null!=a.atm?a.atm:null},minOnCamSize:{enumerable:!0,writable:!0,value:t.min},w:{enumerable:!0,value:null!=t.w?t.w:a&&null!=a.w?a.w:0},realTime:{enumerable:!0,get:function(){return t.realTime}},origin:{value:null!=t.O?{name:t.O,ephemeris:null}:null,enumerable:!0},fullOrbit:{enumerable:!0,get:function(){return t.fullOrbit}},label:{value:t.label,enumerable:!0,writable:!0},trace:{value:t.trace,enumerable:!0,writable:!0},body:{enumerable:!0,writable:!0,value:t.body},rendezvousDate:{value:new Date,enumerable:!0,writable:!0},rendezvousDistance:{value:0,enumerable:!0,writable:!0},rendezvousPoint:{value:new r.Vector3,enumerable:!0,writable:!0},firstDate:{enumerable:!0,writable:!0},timeSpan:{enumerable:!0,writable:!0}}),null!=this.data.dates&&(this.firstDate=new Date(this.data.dates[0]),this.lastDate=new Date(this.data.dates[this.data.dates.length-1]),this.timeSpan=this.lastDate-this.firstDate,this.siderealPeriod="siderealPeriod"in this.objectData?this.objectData.siderealPeriod:this.timeSpan,this.objectData.siderealPeriod=this.siderealPeriod)}s.prototype.createSnapshot=function(e){return new this.snapshot(this,e)},s.prototype.snapshot=function(e,t){this.date,this.keyCurrentIteration=0,this.keyNextIteration=0,this.position=new r.Vector3,this.speed,this.speedVector=new r.Vector3,this.directionVector=new r.Vector3,this.vSn,this.relative=null!=e.objectData.O;var a=e.velocityArray||new Float32Array(e.data.velocityAb),n=this;this.update=function(t){if(e.data.dates.length){n.date=t;var a=e.findCurrentIteration(t);n.keyCurrentIteration=a.keyCurrentIteration,n.keyNextIteration=a.keyNextIteration;var o=a.interval,i=a.proRata;i=isFinite(i)?i:0;var s=n.keyNextIteration-1>=0?n.keyNextIteration-1:0,l=e.data.dates[n.keyNextIteration]-e.data.dates[s],c=[];
1if(c[0]=e.findCurrentIteration(new Date(e.data.dates[s])).actualPosition,c[1]=a.currentPosition,c[3]=a.nextPosition,c[2]=a.actualPosition,n.position=c[2],n.speedVector=c[3].clone().sub(c[0]).multiplyScalar(1/l*OneHour),e.dRngView){var d=[];d[0]=e.dRngView[n.keyCurrentIteration],d[2]=e.dRngView[n.keyNextIteration],d[1]=r.Math.lerp(d[0],d[2],i),n.dSpeed=(d[2]-d[0])/(o/OneDay)}else n.dSpeed=0;var u=[];u[0]=e.vSnView[n.keyCurrentIteration],u[2]=e.vSnView[n.keyNextIteration],u[1]=r.Math.lerp(u[0],u[2],i),n.vSn=u[1],n.dvSn=(u[2]-u[0])/(o/OneDay)}},this.updatePosition=function(t){var r=new Date(t);if(e.data.dates.length){var o;if(n.date=r,e.fullOrbit&&(t=e.mapFullOrbitTime(t),r.setTime(t)),e.data.dates[n.keyCurrentIteration]<=r&&e.data.dates[n.keyNextIteration]>r){var i=e.data.dates[n.keyNextIteration]-e.data.dates[n.keyCurrentIteration];o=0===i?0:(t-e.data.dates[n.keyCurrentIteration])/i,n.position.lerpVectors({x:e.positionsView[3*n.keyCurrentIteration+0],y:e.positionsView[3*n.keyCurrentIteration+1],z:e.positionsView[3*n.keyCurrentIteration+2]},{x:e.positionsView[3*n.keyNextIteration+0],y:e.positionsView[3*n.keyNextIteration+1],z:e.positionsView[3*n.keyNextIteration+2]},o)}else{var s=e.findCurrentIteration(r);n.keyCurrentIteration=s.keyCurrentIteration,n.keyNextIteration=s.keyNextIteration,n.position=s.actualPosition,o=s.proRata}
1"ExoMars TGO 2016-03"===e.name&&(n.position.x*=S3D.MToLocal,n.position.y*=S3D.MToLocal,n.position.z*=S3D.MToLocal),n.speedVector.lerpVectors({x:a[3*n.keyCurrentIteration+0],y:a[3*n.keyCurrentIteration+1],z:a[3*n.keyCurrentIteration+2]},{x:a[3*n.keyNextIteration+0],y:a[3*n.keyNextIteration+1],z:a[3*n.keyNextIteration+2]},o)}},this.getDirectionVector=function(){return n.speedVector.clone().normalize()},this.getPositionFor=function(t){if(e.data.dates.length)return e.fullOrbit&&(t=e.mapFullOrbitDate(t)),e.findCurrentIteration(t).actualPosition},this.getDirectionAt=function(t){if(e.data.dates.length){e.fullOrbit&&(t=e.mapFullOrbitDate(t));var n=e.findCurrentIteration(t),o=n.proRata,i=new r.Vector3;return i.lerpVectors({x:a[3*n.keyCurrentIteration+0],y:a[3*n.keyCurrentIteration+1],z:a[3*n.keyCurrentIteration+2]},{x:a[3*n.keyNextIteration+0],y:a[3*n.keyNextIteration+1],z:a[3*n.keyNextIteration+2]},o),i.normalize()}},null!=t&&this.update(t)},s.prototype.mapFullOrbitTime=function(e){var t=0,a=e-this.firstDate.getTime();if(a>=0){var r=a%this.timeSpan;t=r+=this.firstDate.getTime()}else if(a<0){(r=a%this.timeSpan)<0&&(r+=this.timeSpan),t=r+=this.firstDate.getTime()}return t},s.prototype.mapFullOrbitDate=function(e){var t=new Date,a=e.getTime()-this.firstDate.getTime();if(a>=0){var r=a%this.timeSpan;r+=this.firstDate.getTime(),t.setTime(r)}else if(a<0){(r=a%this.timeSpan)<0&&(r+=this.timeSpan),r+=this.firstDate.getTime(),t.setTime(r)}return t},s.prototype.findCurrentIterationAbsolute=function(e){var t,a;this.fullOrbit&&(e=this.mapFullOrbitDate(e));var n=this.data.dates.findIndex((function(t){return t>e}));t=-1===n?a=this.data.numberLocations-1:0===n?a=0:(a=n)-1;var o=this.data.dates[a]-this.data.dates[t],i=0===o?0:(e-this.data.dates[t])/o,s=new r.Vector3(this.positionsView[3*t+0],this.positionsView[3*t+1],this.positionsView[3*t+2]),l=new r.Vector3(this.positionsView[3*a+0],this.positionsView[3*a+1],this.positionsView[3*a+2]);return{keyCurrentIteration:t,currentPosition:s,keyNextIteration:a,nextPosition:l,proRata:i,actualPosition:(new r.Vector3).lerpVectors(s,l,i),interval:o}},s.prototype.findCurrentIteration=function(e){e=isNaN(e)?new Date(this.firstDate.getTime()):e;var t=this.findCurrentIterationAbsolute(e);return{keyCurrentIteration:t.keyCurrentIteration,currentPosition:t.currentPosition,keyNextIteration:t.keyNextIteration,nextPosition:t.nextPosition,proRata:t.proRata,actualPosition:t.actualPosition,interval:t.interval}},s.prototype.getPosition=function(e){return this.findCurrentIteration(e).actualPosition},s.prototype.getPositionsViewFor=function(e,t){if(t-e>=this.timeSpan)return this.positionsView;for(var a=this.findCurrentIteration(e).keyCurrentIteration,n=this.findCurrentIteration(t).keyCurrentIteration,o=new ArrayBuffer(3*(n-a)*Float64Array.BYTES_PER_ELEMENT),i=new Float64Array(o),s=new r.Vector3,l=a,c=0;l<n;l++,c++)s.set(this.positionsView[3*l+0],this.positionsView[3*l+1],this.positionsView[3*l+2]),i[3*c+0]=s.x,i[3*c+1]=s.y,i[3*c+2]=s.z;return i},s.prototype.getRendezvousWith=function(e,t,a){var r=this;try{a=null!=a?a:OneMinute;var n=r.fullOrbit?-1/0:new Date(r.data.dates[0]),o=e.fullOrbit?-1/0:new Date(e.data.dates[0]),i=null==t?-1/0:t.from,s=new Date(Math.max(n,o,i)),l=r.fullOrbit?1/0:r.data.dates[r.data.numberLocations-1],c=e.fullOrbit?1/0:e.data.dates[e.data.numberLocations-1],d=null==t?1/0:t.to,u=new Date(Math.min(l,c,d)),h=1/0,p=new Date,m=function(t,a,n){for(;t<a;){var o=r.findCurrentIteration(t),i=e.findCurrentIteration(t),s=(o.proRata,i.proRata,[]),l=[];s[0]=o.currentPosition,l[0]=i.currentPosition,s[2]=o.nextPosition,l[2]=i.nextPosition,s[1]=o.actualPosition,l[1]=i.actualPosition;var c=s[1].distanceTo(l[1]);if(c<h&&(h=c,p=new Date(t),r.rendezvousPoint.copy(s[1]),e.rendezvousPoint.copy(l[1])),null!=n)var d=new Date(t.getTime()+n);else{var u=Math.min(o.interval,i.interval);if(0===u)throw new Error("Ephemeris.min interval cannot be 0");d=new Date(t.getTime()+u)}t=d}};m(s,u);var f=r.findCurrentIteration(p),g=e.findCurrentIteration(p);return m(s=new Date(Math.max(r.data.dates[f.keyCurrentIteration],e.data.dates[g.keyCurrentIteration])),u=new Date(Math.min(r.data.dates[f.keyNextIteration],e.data.dates[g.keyNextIteration])),a),{date:new Date(p),distance:h,position:r.rendezvousPoint}}catch(e){console.log("Caught exception Epm "+e)}},s.min=function(e,t,a,r){try{r=null!=r?r:OneMinute;var n=e.fullOrbit?-1/0:new Date(e.data.dates[0]),o=t.fullOrbit?-1/0:new Date(t.data.dates[0]),i=null==a?-1/0:a.from,s=new Date(Math.max(n,o,i)),l=e.fullOrbit?1/0:e.data.dates[e.numberLocations-1],c=t.fullOrbit?1/0:t.data.dates[t.numberLocations-1],d=null==a?1/0:a.to,u=new Date(Math.min(l,c,d)),h=1/0,p=new Date,m=function(a,r,n){for(;a<r;){var o=e.findCurrentIteration(a),i=t.findCurrentIteration(a),s=(o.proRata,i.proRata,[]),l=[];s[0]=o.currentPosition,l[0]=i.currentPosition,s[2]=o.nextPosition,l[2]=i.nextPosition,s[1]=o.actualPosition,l[1]=i.actualPosition;var c=s[1].distanceTo(l[1]);if(c<h&&(h=c,p=new Date(a),e.rendezvousPoint.copy(s[1]),t.rendezvousPoint.copy(l[1])),null!=n)var d=new Date(a.getTime()+n);else{var u=Math.min(o.interval,i.interval);if(0===u)throw new Error("Ephemeris.min interval cannot be 0");u=Math.max(u,1e3);d=new Date(a.getTime()+u)}a=d}};m(s,u);var f=e.findCurrentIteration(p),g=t.findCurrentIteration(p);m(s=new Date(Math.max(e.data.dates[f.keyCurrentIteration],t.data.dates[g.keyCurrentIteration])),u=new Date(Math.min(e.data.dates[f.keyNextIteration],t.data.dates[g.keyNextIteration])),r),e.rendezvousDate=new Date(p),e.rendezvousDistance=h,t.rendezvousDate=new Date(p),t.rendezvousDistance=h}catch(e){console.log("Caught exception SO.m "+e)}};const l=s;a(2222),a(7327);function c(){var e=URL.createObjectURL(new Blob(["(",function(){function e(e,t,a,r,n,o){this.path=e,this.origin=t,this.orbitNormal=a,this.dates=r,this.positionBuffer=n,this.sunSpeedBuffer=o}function t(e,a,r,n){if(r>n)return Math.max(n,0);var o=Math.floor((r+n)/2);return e[o]===a?o:e[o]>a?t(e,a,r,o-1):t(e,a,o+1,n)}function a(e,t,a){return e+(t-e)*(a=(a=a<0?0:a)>1?1:a)}function r(e,t){var a=new e.constructor(e.length+t.length);return a.set(e),a.set(t,e.length),a}Array.prototype.findIndex||Object.defineProperty(Array.prototype,"findIndex",{value:function(e){if(null==this)throw new TypeError('"this" is null or not defined');var t=Object(this),a=t.length>>>0;if("function"!=typeof e)throw new TypeError("predicate must be a function");for(var r=arguments[1],n=0;n<a;){var o=t[n];if(e.call(r,o,n,t))return n;n++}return-1}}),self.ephemerides={},self.onmessage=function(n){var o=n.data,i=o.type,s=o.name,l=o.requestId;if("new ephemeris"===i){var c=new e(o.path,o.origin,o.orbitNormal,o.dates,o.positionBuffer,o.sunSpeedBuffer);self.ephemerides[s]||(self.ephemerides[s]=[]);var d=self.ephemerides[s];if(d.push(c),2===d.length){var u=d[0].dates[0]>d[1].dates[0],h=d[u?1:0],p=d[u?0:1];console.log(" firstEphemeride ".concat(h.dates[0]," - ").concat(h.dates[h.dates.length-1]," secondEphemeride ").concat(p.dates[0]," - ").concat(p.dates[p.dates.length-1]," ")),h.dates=h.dates.concat(p.dates),console.log(" merged firstEphemeride ".concat(h.dates[0]," - ").concat(h.dates[h.dates.length-1]," ")),h.positionBuffer=r(new Float64Array(h.positionBuffer),new Float64Array(p.positionBuffer)).buffer,h.sunSpeedBuffer=r(new Float32Array(h.sunSpeedBuffer),new Float32Array(p.sunSpeedBuffer)).buffer,p.dates=null,p.positionBuffer=null,p.sunSpeedBuffer=null,d.pop()}}else if("request compute"===i){var m=function(e){var r,n=e.date,o=e.name,i=e.timeScale,s=(e.speed,e.expiry||
160),l=i*s*1.1*1e3,c=n-.1/1.1*l,d=c+l,u=l/s/10,h=self.ephemerides[o][0],p=[];for(r=c;r<d;r+=u)p.push(r);c=p[0],d=p[p.length-1];var m,f=new ArrayBuffer(3*p.length*8),g=new Float64Array(f),y=new ArrayBuffer(3*p.length*8),b=new Float64Array(y),w=h.dates,v=new Float64Array(h.positionBuffer);w||console.log("eDates is NULL "+JSON.stringify(h));for(C=0;C<p.length;C++){var S=t(w,m=p[C],0,w.length-1),M=Math.min(S+1,w.length-1),D=w[S],T=w[M],A=T-D,P=0!==A?Math.max(m-D,0)/A:0;if(isNaN(P))throw new Error("Date indeterminate for ".concat(o," (").concat(D,"-").concat(T," ").concat(A," ").concat(P,")"));if(g[3*C+0]=a(v[3*S+0],v[3*M+0],P),g[3*C+1]=a(v[3*S+1],v[3*M+1],P),g[3*C+2]=a(v[3*S+2],v[3*M+2],P),C){b[3*(C-1)+0]=g[3*C+0]-g[3*(C-1)+0],b[3*(C-1)+1]=g[3*C+1]-g[3*(C-1)+1],b[3*(C-1)+2]=g[3*C+2]-g[3*(C-1)+2];var j=p[C]-p[C-1],O=.001;b[3*(C-1)+0]/=j*O,b[3*(C-1)+1]/=j*O,b[3*(C-1)+2]/=j*O}}for(var x=new ArrayBuffer(4*p.length),R=new Float32Array(x),E=new Float32Array(h.sunSpeedBuffer),C=0;C<p.length;C++){var I=t(w,m=p[C],0,w.length-1),B=Math.min(I+1,w.length-1),V=w[I],N=w[B]-V,k=0!==N?Math.max(m-V,0)/N:0;R[C]=a(E[I],E[B],k)}return{dateRange:[c,d],dates:p,stepSize:u/1e3,positionBuffer:f,velocityBuffer:y,sunSpeedBuffer:x}}(o),f=(s=o.name,c=self.ephemerides[s][0],{object:s,dateRange:m.dateRange,dates:m.dates,stepSize:m.stepSize,positionBuffer:m.positionBuffer,velocityBuffer:m.velocityBuffer,sunSpeedBuffer:m.sunSpeedBuffer,orbitNormal:c.orbitNormal});postMessage(f,[f.positionBuffer,f.sunSpeedBuffer,f.velocityBuffer])}else{if("request positions"!==i)throw new Error("Invalid request type "+JSON.stringify(o));f={object:s,positionBuffer:(m=function(e){for(var t=e.name,a=e.dateRange,r=0,n=0;n<self.ephemerides[t].length;n++){if("Sun"!==(c=self.ephemerides[t][n]).origin)break;for(var o=0;o<c.dates.length;o++){(u=c.dates[o])>a[0]&&u<a[1]&&r++}}var i=new ArrayBuffer(3*r*8),s=new Float64Array(i),l=0;for(n=0;n<self.ephemerides[t].length;n++){var c;if("Sun"!==(c=self.ephemerides[t][n]).origin)break;var d=new Float64Array(c.positionBuffer);for(o=0;o<c.dates.length;o++){var u;(u=c.dates[o])>a[0]&&u<a[1]&&(s[3*l+0]=d[3*o+0],s[3*l+1]=d[3*o+1],s[3*l+2]=d[3*o+2],l++)}}return{positionBuffer:i}}(o)).positionBuffer,requestId:l};postMessage(f,[f.positionBuffer])}}}.toString(),")()"],{type:"application/javascript"}));return new Worker(e)}a(4944),a(6535),a(1249),a(5827),a(7042),a(2707),a(3792),a(9244),a(9653);function d(){var e=URL.createObjectURL(new Blob(["(",function(){Array.prototype.flat||Object.defineProperty(Array.prototype,"flat",{configurable:!0,value:function e(){var t=isNaN(arguments[0])?1:Number(arguments[0]);return t?Array.prototype.reduce.call(this,(function(a,r){return Array.isArray(r)?a.push.apply(a,e.call(r,t-1)):a.push(r),a}),[]):Array.prototype.slice.call(this)},writable:!0}),Array.prototype.flatMap||Object.defineProperty(Array.prototype,"flatMap",{configurable:!0,value:function(e){return Array.prototype.map.apply(this,arguments).flat()},writable:!0});self.onmessage=function(e){var t=e.data,a=t.type,r=t.objectData;if("JITkepler"===a)!function(e){postMessage({success:!0,type:"JITkepler",objectData:e})}(r);else if("JITastronomy"===a)!function(e){postMessage({success:!0,type:"JITastronomy",objectData:e})}(r);else if("JITblend"===a){var n=t.ephUrlPrefix,o=r.JITblend,i=[];o.forEach((function(e){var t,a,r=n+e.file+".json";if(e.path=r,i.push((t="GET",a=r,new Promise((function(e,r){var n=new XMLHttpRequest;n.open(t,a),n.onload=function(){if(this.status>=200&&this.status<300){var t=JSON.parse(n.response);if(null!=t.error)throw new Error(t.error);e(t)}else r({status:this.status,statusText:n.statusText})},n.onerror=function(){r({status:this.status,statusText:n.statusText})},n.send()})))),"Sun"!==e.origin)throw new Error("Unsupported origin "+e.origin+" for "+e.file)})),Promise.all(i).then((function(e){!function(e){console.log("".concat(e.length," files loaded into PreProcessor\n").concat(e.reduce((function(e,t,a,r){return e+new Date(r[a][0].date).toISOString()+" to "+new Date(r[a][r[a].length-1].date).toISOString()+"\r\n"}),"")))}(e),function(e,t){var a=t.flat();t=null,a.sort((function(e,t){return e.date-t.date}));var r,n=a,o=a.length,i=[];for(r=0;r<o;r++)i.push(n[r].date);var s=new ArrayBuffer(3*o*8),l=new Float64Array(s);for(r=0;r<o;r++)l[3*r+0]=n[r].x,l[3*r+1]=n[r].y,l[3*r+2]=n[r].z;var c=new ArrayBuffer(4*o),d=new Float32Array(c);for(r=0;r<o;r++)d[r]=n[r].vSn;var u={success:!0,type:"JITblend",objectData:e,dates:i,origin:"Sun",positionBuffer:s,sunSpeedBuffer:c};postMessage(u,[u.positionBuffer,u.sunSpeedBuffer])}(r,e)}
1)).catch((function(e){var t;t="WorkerPreProcess ".concat(r.name," ").concat(JSON.stringify(e)),postMessage({type:"debug",string:t})}))}}}.toString(),")()"],{type:"application/javascript"}));return new Worker(e)}function u(){var e=URL.createObjectURL(new Blob(["(",function(){var e=Math.PI/180;Math.PI;function t(e,t,n){var o=Object.assign({},t);if(n&&(o=a(e,t,n)),"meanAnomaly"in o&&"meanMotion"in o){var i=e/864e5+2440587.5;o.meanAnomaly=o.meanAnomaly+o.meanMotion*(i-o.epoch)}return r(o,applyEclipticRotation)}function a(e,t,a){var r=new Date(Date.UTC(2e3,0,1,12));var n=function(e){return(e-r)/315576e7}(e);return{semiMajor:t.semiMajor+a.semiMajor*n,eccentricity:t.eccentricity+a.eccentricity*n,inclination:t.inclination+a.inclination*n,meanLong:t.meanLong+a.meanLong*n,longPeri:t.longPeri+a.longPeri*n,longNode:t.longNode+a.longNode*n}}function r(t,a){var r=Math.cos,n=Math.sin,o=t.semiMajor,i=t.eccentricity,s=t.inclination,l=t.meanLong,c=t.longPeri,d=t.longNode,u=t.meanAnomaly,h=c-d;(null==u||isNaN(u))&&(u=l-c);var p=function(e,t){var a,o,i,s=1e-12,l=0,c=1,d=!1,u=0,h=e>1,p=e<1;if(!t)return 0;if(p){if(t<-Math.PI||t>Math.PI){var m=t%Math.PI*2;m>Math.PI?m-=2*Math.PI:m<-Math.PI&&(m+=2*Math.PI),l=t-m,t=m}if(e<.9){a=Math.atan2(n(t),r(t)-e);do{a-=o=(a-e*n(a)-t)/(1-e*r(a))}while(Math.abs(o)>s);return a+l}}if(t<0&&(t=-t,d=!0),a=t,(i=s*Math.abs(1-e))<1e-14&&(i=1e-14),e>.8&&t<Math.PI/3||h){var f=t/Math.abs(1-e);f*f>6*Math.abs(1-e)&&(f=Math.exp(Math.log(6*t)/3)),a=f,i>s&&(i=s)}if(p)for(;Math.abs(c)>i;)if(u++>7?(console.log("near_parabolic"),o=near_parabolic(a,e)-t):o=a-e*n(a)-t,a+=c=-o/(1-e*r(a)),!(u<20))throw new Error("n_iter >= 20");return d?l-a:l+a}(i,(u=Math.mod(u+180,360)-180)*e),m=i,f=o,g=s*e;h*=e,d*=e;var y=f*(r(p)-m),b=f*n(p)*Math.sqrt(1-Math.pow(m,2)),w=0,v=r(h)*y-n(h)*b,S=n(h)*y+r(h)*b,M=0;M=n(g)*S,y=v,b=S=r(g)*S,v=r(d)*y-n(d)*b,b=S=n(d)*y+r(d)*b,w=M,S=r(-90*e)*b-n(-90*e)*w,M=n(-90*e)*b+r(-90*e)*w,b=S,w=M;var D=a?23.436637219913795:0;return S=r(D*e)*b-n(D*e)*w,M=n(D*e)*b+r(D*e)*w,{x:v*=149597870700,y:S*=149597870700,z:M*=149597870700}}Math.mod||(Math.mod=function(e,t){return(e%t+t)%t}),void 0===Object.assign&&(Object.assign=function(e){if(null==e)throw new TypeError("Cannot convert undefined or null to object");for(var t=Object(e),a=1;a<arguments.length;a++){var r=arguments[a];if(null!=r)for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t}),self.keplerianElements={},self.elementRates={},self.applyEclipticRotation={},self.objectData={},self.onmessage=function(e){var n=e.data,o=n.type,i=n.name,s=n.objectData,l=n.requestId;if("new kepler"===o){var c=s.elements,d=s.rates,u="Ecliptic"===s.Ref;self.keplerianElements[i]=c,self.elementRates[i]=d,self.applyEclipticRotation[i]=u,self.objectData[i]=s}else if("request compute"===o){var h=function(e){var t,n=e.date,o=e.name,i=(e.objectData,e.timeScale),s=(e.speed,e.expiry||60),l=i*s*1.1*1e3,c=n-.1/1.1*l,d=c+l,u=l/s/10,h=self.keplerianElements[o],p=self.elementRates[o],m=self.applyEclipticRotation[o],f=[];for(t=c;t<d;t+=u)f.push(t);c=f[0],d=f[f.length-1];var g,y,b=new ArrayBuffer(3*f.length*8),w=new Float64Array(b),v=new ArrayBuffer(3*f.length*8),S=new Float64Array(v),M=new ArrayBuffer(4*f.length),D=new Float32Array(M);for(g=0;g<f.length;g++){y=f[g];var T=Object.assign({},h);if(p&&(T=a(y,h,p)),"meanAnomaly"in T&&"meanMotion"in T){var A=y/864e5+2440587.5;T.meanAnomaly=T.meanAnomaly+T.meanMotion*(A-T.epoch)}var P=r(T,m);if(w[3*g+0]=P.x,w[3*g+1]=P.y,w[3*g+2]=P.z,g){S[3*(g-1)+0]=w[3*g+0]-w[3*(g-1)+0],S[3*(g-1)+1]=w[3*g+1]-w[3*(g-1)+1],S[3*(g-1)+2]=w[3*g+2]-w[3*(g-1)+2];var j=f[g]-f[g-1],O=.001;S[3*(g-1)+0]/=j*O,S[3*(g-1)+1]/=j*O,S[3*(g-1)+2]/=j*O;var x=S[3*(g-1)+0],R=S[3*(g-1)+1],E=S[3*(g-1)+2];D[g-1]=Math.sqrt(x*x+R*R+E*E)}}return{dateRange:[c,d],dates:f,stepSize:u/1e3,positionBuffer:b,velocityBuffer:v,sunSpeedBuffer:M}}(n),p={object:n.name,dateRange:h.dateRange,dates:h.dates,stepSize:h.stepSize,positionBuffer:h.positionBuffer,velocityBuffer:h.velocityBuffer,sunSpeedBuffer:h.sunSpeedBuffer,timestamp:Date.now()};postMessage(p,[p.positionBuffer,p.velocityBuffer])}else{if("request positions"!==o)throw new Error("Invalid request type "+JSON.stringify(n));var m={object:i,positionBuffer:function(e){var a=e.name,r=self.keplerianElements[a],n=self.elementRates[a],o=self.objectData[a].siderealPeriod,i=512,s=new ArrayBuffer(3*i*8),l=new Float64Array(s);if(o>0&&o!==1/0){var c=(new Date).getTime()-.5*o,d=c+o,u=d-c,h=u/i;console.log("request positions ".concat(c," ").concat(u," ").concat(h," ").concat(d));for(var p=0,m=c;p<i;p++,m+=h){var f=t(m,r,n);l[3*p+0]=f.x,l[3*p+1]=f.y,l[3*p+2]=f.z}}return{positionBuffer:s}}(n).positionBuffer,requestId:l};postMessage(m,[m.positionBuffer])}}}.toString(),")()"],{type:"application/javascript"}));return new Worker(new URL(e,"file:///C:/Users/rened/OneDrive/Documents/Visual%20Studio%202019/SpaceIn3D%20Node/scripts/Models/Mo-Worker-Kepler.js"))}var h=a(6486),p=a.n(h),m=a(8535).Helpers,f=a(7484);function g(e){Object.assign(this,e);var t=new Float64Array(e.positionBuffer);if(isNaN(t[0]))throw new Error("PreCompute data for ".concat(e.object," didn't pass isNaN sanity check"))}const y=function(e){this.objectData,this.ephemerides=[],this.firstDate,this.lastDate,this.computeResultCallbacks={};var t,a=this,n=document.getElementById("canvas");function o(r){if(t){var n={type:"request compute",name:a.name,date:r,timeScale:t.timeScale,speed:t.speed,expiry:t.expiry};console.log("initiateCompute(".concat(f(new Date(r)).format("MMM D, YYYY HH:mm:ss.SSS"),") timeScale ").concat(n.timeScale)),e.postMessage(n)}}this.onmessage=function(e){try{var t=e.data;if(a.preComputeRange=t.dateRange,t.lastAccess=Date.now(),a.preComputes.push(new g(t)),console.log("preCompute ready "+t.object+" "+JSON.stringify(a.preComputeRange)+" "+t.dates.length+" samples "),a.preComputes.length%10==0&&console.log(a.preComputes.length+" preComputes for "+a.name),t.requestId&&"function"==typeof a.computeResultCallbacks[t.requestId]){var r=new Float64Array(t.positionBuffer);a.computeResultCallbacks[t.requestId](r),delete a.computeResultCallbacks[t.requestId]}a.needsCompute=!1}catch(e){m.catch(e,"wkEphoM")}},this.add=function(t){this.objectData=t.objectData,this.name=this.objectData.name;var a=t.type;if("JITblend"===a){t.orbitNormal=function(e){var t=e.dates.length>>2,a=e.dates.length>>1,n=new Float64Array(e.positionBuffer),o={};o.x=n[3*(t+1)+0]-n[3*t+0],o.y=n[3*(t+1)+1]-n[3*t+1],o.z=n[3*(t+1)+2]-n[3*t+2],o=(new r.Vector3).copy(o);var i={};return i.x=n[3*(a+1)+0]-n[3*a+0],i.y=n[3*(a+1)+1]-n[3*a+1],i.z=n[3*(a+1)+2]-n[3*a+2],i=(new r.Vector3).copy(i),o.cross(i).normalize()}(t);var n={type:"new ephemeris",name:this.name,path:t.path,origin:t.origin,orbitNormal:t.orbitNormal,dates:t.dates,positionBuffer:t.positionBuffer,sunSpeedBuffer:t.sunSpeedBuffer};console.log("add JITblend ".concat(this.name)),e.postMessage(n,[t.positionBuffer,t.sunSpeedBuffer]),this.ephemerides.push(t.path),this.firstDate=
1Math.min(t.dates[0],this.firstDate||1/0),this.lastDate=Math.max(t.dates[t.dates.length-1],this.lastDate||0)}else if("JITkepler"===a){!function(e,t){if(!(null!=e.semiMajor&&null!=e.eccentricity&&null!=e.inclination&&null!=e.meanAnomaly&&null!=e.longPeri&&null!=e.longNode||t&&null!=e.semiMajor&&null!=e.eccentricity&&null!=e.inclination&&null!=e.meanLong&&null!=e.longPeri&&null!=e.longNode))throw new Error("Essential elements not present in ".concat(JSON.stringify(e)))}(this.objectData.elements,this.objectData.rates);n={type:"new kepler",name:this.name,objectData:this.objectData};console.log("add JITkepler ".concat(this.name)),e.postMessage(n),this.firstDate=1/0,this.lastDate=1/0}else if("JITastronomy"===a){n={type:"new astronomy",name:this.name,objectData:this.objectData};console.log("add JITastronomy ".concat(this.name)),e.postMessage(n),this.firstDate=1/0,this.lastDate=1/0}},this.preComputes=[],this.preComputeRange=[new Date,new Date],this.awake=function(){this.firstDate=new Date(this.firstDate),this.lastDate=new Date(this.lastDate),n.addEventListener("play-state",(function(e){var r=e.detail,n=!t||t.date.getTime()!==r.date.getTime()||t.timeScale!==r.timeScale||t.speed!==r.speed;t=r,n&&(console.log("".concat(f(new Date).format("HH:mm:ss.SSS")," ").concat(a.name," EphemerisContainer: play-state changed - initiateCompute")),o(t.timePrecise))})),console.log("initiateComputeMidnight ".concat(a.name)),e.postMessage({type:"request compute",name:a.name,date:m.dateAtMidnight,timeScale:1,speed:1,expiry:null}),console.log("initiateComputePageLoad ".concat(a.name)),e.postMessage({type:"request compute",name:a.name,date:m.dateAtPageLoad,timeScale:1,speed:1,expiry:null})},this.reset=function(){n.dispatchEvent(new CustomEvent("request-play-state"))},this.getPositions=function(t,n,o){var i=r.Math.generateUUID(),s={type:"request positions",name:a.name,dateRange:t,stepSize:n,requestId:i};this.computeResultCallbacks[i]=o,console.log("getPositions ".concat(a.name," dateRange ").concat(t," stepSize ").concat(n)),e.postMessage(s)};var i,s=p().throttle((function(){var e=a.preComputes.length;e>10&&console.warn("".concat(a.name,".preComputes seems excessive at ").concat(e)),a.preComputes=a.preComputes.filter((function(e){return Date.now()-e.lastAccess<6e4}));var t=a.preComputes.length;e!==t&&console.log("collectComputeGarbage ".concat(e-t," computes"))}),3e4);function l(e){s();var t=a.preComputes.filter((function(t){if(!("dateRange"in t))return!1;var a=t.dateRange[0],r=t.dateRange[1];return a<=e&&e<=r}));if(t){var r=t.reduce((function(e,t,a){return t.stepSize<e.stepSize?t:e}),t[0]);if(r)return r.lastAccess=Date.now(),r.timestamp!==i&&(i=r.timestamp,console.log("".concat(f(new Date).format("HH:mm:ss.SSS")," ").concat(a.name," now switching to preCompute created @ ").concat(f(new Date(i)).format("HH:mm:ss.SSS")))),r}}function c(e,t,a){return e+(t-e)*(a=(a=a<0?0:a)>1?1:a)}function d(e,t,a,r){if(a>r)return Math.max(r,0);var n=Math.floor((a+r)/2);return e[n]===t?n:e[n]>t?d(e,t,a,n-1):d(e,t,n+1,r)}this.getPositionFor=function(e){new Date(e);var t={x:0,y:0,z:0},a=l(e);if(a){var r=a.dates,n=new Float64Array(a.positionBuffer),o=d(r,e,0,r.length-1),i=Math.min(o+1,r.length-1),s=r[o],u=r[i]-s,h=0!==u?Math.max(e-s,0)/u:0;t.x=c(n[3*o+0],n[3*i+0],h),t.y=c(n[3*o+1],n[3*i+1],h),t.z=c(n[3*o+2],n[3*i+2],h)}return t},this.getVelocityFor=function(e){var t={x:0,y:0,z:0},a=l(e.getTime());if(a){var r=a.dates,n=new Float64Array(a.velocityBuffer),o=d(r,e,0,r.length-1),i=Math.min(o+1,r.length-1),s=r[o],u=r[i]-s,h=0!==u?Math.max(e-s,0)/u:0;t.x=c(n[3*o+0],n[3*i+0],h),t.y=c(n[3*o+1],n[3*i+1],h),t.z=c(n[3*o+2],n[3*i+2],h)}return t},this.getSunSpeedFor=function(e){var t=0,a=l(e.getTime());if(a){var r=a.dates,n=d(r,e,0,r.length-1),o=Math.min(n+1,r.length-1),i=r[n],s=r[o]-i,u=0!==s?Math.max(e-i,0)/s:0,h=new Float32Array(a.sunSpeedBuffer);t=c(h[n],h[o],u)}return t},this.getOrbitNormal=function(){for(var e=[],t=0;t<a.preComputes.length;t++)e.push(a.preComputes[t].orbitNormal);return e[0]},this.getDateRange=function(){var e;return e=!0===this.objectData.JITkepler?[new Date(Date.now()-.5*this.objectData.siderealPeriod),new Date(Date.now()+.5*this.objectData.siderealPeriod)]:[this.firstDate,this.lastDate],console.log("getDateRange ",e),e},this.checkCompute=function(e){var r=!1,n=l(e);if(n){var i=n.stepSize,s=t.timeScale||1/0;if(i&&i<=s&&(r=!0),r){var c=n.dates[Math.floor(.8*n.dates.length)],d=e>c;
1r=r&&!d,d&&console.log("".concat(a.name," reached threshold ").concat(c," at ").concat(e," "))}}return r||(this.needsCompute=!0,this.computeTime=e),r||(console.log("".concat(a.name," ephemeris data validation warning at ").concat(e," - initiateCompute"),n),o(e)),r}};var b=a(8535).Helpers,w=a(7484);const v=function(){var e,t=document.getElementById("canvas");return function(){return e||(e=this,function(){var r=d();e.containers={};var n=c(),o=u(),s=new Worker(new URL(a.p+a.u(189),a.b));n.onmessage=function(t){var a=t.data.object,r=e.containers[a];if(!r)throw new Error("container for "+a+" not found");r.onmessage(t)},o.onmessage=function(t){var a=t.data,r=a.object,n=e.containers[r];if("dateRange"in a&&console.log("".concat(w(new Date).format("HH:mm:ss.SSS")," ").concat(r," workerKepler message timestamped ").concat(w(new Date(a.timestamp)).format("HH:mm:ss.SSS")," (").concat(w(new Date(a.dateRange[0])).format("MMM D, YYYY HH:mm:ss.SSS")," - ").concat(w(new Date(a.dateRange[1])).format("MMM D, YYYY HH:mm:ss.SSS"),")")),!n)throw new Error("container for "+r+" not found");n.onmessage(t)},s.onmessage=function(t){var a=t.data.object,r=e.containers[a];if(!r)throw new Error("container for "+a+" not found");r.onmessage(t)},r.onmessage=function(a){if("debug"!==a.data.type)try{var r=a.data,n=r.type,o=r.objectData.name,i=e.containers[o];i.add(r),("JITblend"===n||"JITkepler"===n||"JITastronomy"===n)&&(i.awake(),t.dispatchEvent(new CustomEvent("ephemeris-schedule-ready",{detail:i})))}catch(e){b.catch(e,"wkMS2oM")}else console.log(a.data.string)};var l=S3D.SpaceObjects.getObjectsForKeyValue("defaultScene",!0);function h(t){if("JITastronomy"in t){i.g.fill(t);var a=t.name;e.containers[a]=new y(s);var l={type:"JITastronomy",objectData:t};r.postMessage(l)}if("JITkepler"in t){i.g.fill(t);a=t.name;e.containers[a]=new y(o);l={type:"JITkepler",objectData:t};r.postMessage(l)}if("JITblend"in t){i.g.fill(t);a=t.name;e.containers[a]=new y(n);l={type:"JITblend",objectData:t,ephUrlPrefix:b.ephUrlPrefix};r.postMessage(l)}}l=(l=l.filter((function(e){return e.astrBody!==S3D.AstronomicalBody.MOON}))).filter((function(e){return-1===page.objectNames[page.name].findIndex((function(t){return t.name===e.name}))})),page.objectNames[page.name]=page.objectNames[page.name].concat(l),page.objectNames[page.name].forEach((function(e,t,a){h(e)})),t.addEventListener("s3d-new-space-object-data",(function(e){var t=e.detail;if("JITblend"in t||"JITkepler"in t||"JITastronomy"in t)h(t);else if("elements"in t){if(!0===t.kepler)return;t.JITkepler=!0,h(t)}else console.error("s3d-new-space-object-data with unknown object type",t)}))}()),e}}();var S=a(2783),M=a(8535).Helpers,D=function(e){var t;function r(e,t,r){var s,c=".json",d=(s=URL.createObjectURL(new Blob(["(",function(){self.onmessage=function(e){var t,a,r,n,o=!1,i=0,s=e.data,l=null!=s.orbitingUrl&&null==s.orbitingSched;try{(t=new XMLHttpRequest).open("GET",s.itemUrl,!0)}catch(e){throw new Error("Failed to execute 'open' on 'XMLHttpRequest' ".concat(s.itemUrl))}function c(){if(!((r=JSON.parse(t.responseText)).length>0))throw"pR e-data length 0 "+s.item.name;if(d(r),l){if(!((n=JSON.parse(a.responseText)).length>0))throw"pR no o-data found "+s.item.name;d(n),o=!0}else null!=s.orbitingSched&&(n=s.orbitingSched).length>0&&(o=!0);var e={result:"pR done "+s.item.name,success:!0,item:s.item,numberLocations:r.length,dates:u(r),positionHighPAb:p(r),velocityAb:m(r),dRngAb:h(r),vSnAb:f(r),positionsAbsolutized:o};postMessage(e,[e.positionHighPAb,e.velocityAb,e.dRngAb,e.vSnAb])}function d(e){e.forEach((function(e){var t=new Date(Date.parse(e.date+"T"+e.time+"Z"));isNaN(t)&&(t=new Date(0)),e.dateObj=t,"ExoMars TGO 2016-03"===s.item.name&&(e.dateObj=new Date(e.date))}))}function u(e){var t=[];return e.forEach((function(e){t.push(e.dateObj.getTime())})),t}function h(e){for(var t=new ArrayBuffer(4*e.length),a=new Float32Array(t),r=0;r<e.length;r++)a[r]=e[r].dRng;return t}function p(e){for(var t=new ArrayBuffer(3*e.length*8),a=new Float64Array(t),r=0;r<e.length;r++)a[3*r+0]=e[r].x,a[3*r+1]=e[r].y,a[3*r+2]=e[r].z;return t}function m(e){for(var t=new ArrayBuffer(3*e.length*4),a=new Float32Array(t),r=0;r<e.length-1;r++){var n=e[r+1].x-e[r].x,o=e[r+1].y-e[r].y,i=e[r+1].z-e[r].z,s=(e[r+1].dateObj-e[r].dateObj)/36e5;a[3*r+0]=n/s,a[3*r+1]=o/s,a[3*r+2]=i/s}return t}function f(e){for(var t=new ArrayBuffer(4*e.length),a=new Float32Array(t),r=0;r<e.length;r++)a[r]=e[r].vSn;return t}l&&(a=new XMLHttpRequest).open("GET",s.orbitingUrl,!0),t.onload=function(){try{t.status>=200&&t.status<400?0==--i&&c():postMessage({result:"iR fail "+t.status+" "+s.item.name,success:!1})}catch(e){postMessage({result:"Caught exception iR.ol "+e,success:!1})}},l&&(a.onload=function(){try{a.status>=200&&a.status<400?0==--i&&c():postMessage({result:"oR fail "+a.status+" "+s.orbitingItem.name,success:!1})}catch(e){postMessage({result:"Caught exception oR.ol "+e,success:!1})}}),t.onerror=function(){postMessage({result:"iR error "+s.item.name,success:!1})},l&&(a.onerror=function(){postMessage({result:"oR error "+s.orbitingItem.name,success:!1})}),t.send(),i++,l&&(a.send(),i++)}}.toString(),")()"],{type:"application/javascript"})),new Worker(s)),u=n(),h=o(),p=256*(M.mobileAndTablet?2:5);function m(e,t,a){var r=555.00144855===e.elements.semiMajor,n="",o=new Date(Date.UTC(2e3,0,1,12));var i=1e-12,s=1e-14;var l=Math.cos,c=Math.sin,d=function(e,t){if(null!=e){var a=function(e){return(e-o)/315576e7}(t);return{semiMajor:e.elements.semiMajor+e.rates.semiMajor*a,eccentricity:e.elements.eccentricity+e.rates.eccentricity*a,inclination:e.elements.inclination+e.rates.inclination*a,meanLong:e.elements.meanLong+e.rates.meanLong*a,longPerihelion:e.elements.longPeri+e.rates.longPeri*a,longAscendingNode:e.elements.longNode+e.rates.longNode*a,meanAnomaly:0!=e.elements.meanAnomaly?e.elements.meanAnomaly+e.elements.meanMotion*(t.getUTCJulian()-e.elements.epoch):null}}}(e,t),u=d.semiMajor,h=d.eccentricity,p=d.inclination,m=d.meanLong,f=d.longPerihelion,g=d.longAscendingNode,y=d.meanAnomaly,b=f-g;(null==y||isNaN(y))&&(y=m-f),y=Math.mod(y+180,360)-180;var w=function(e,t){var a,n,o,d=0,u=1,h=!1,p=0,m=e>1,f=e<1;if(!t)return r&&console.log("meanAnomaly == 0"),0;if(f){if(r&&console.log("Elliptic 1"),t<-Math.PI||t>Math.PI){r&&console.log("bring meanAnomaly within [-π, π]");var g=t%Math.PI*2;g>Math.PI?g-=2*Math.PI:g<-Math.PI&&(g+=2*Math.PI),d=t-g,t=g}if(e<.9){r&&console.log("Low eccentricity"),a=Math.atan2(c(t),l(t)-e);
1do{a-=n=(a-e*c(a)-t)/(1-e*l(a))}while(Math.abs(n)>i);return a+d}}if(t<0&&(r&&console.log("negative meanAnomaly"),t=-t,h=!0),a=t,(o=i*Math.abs(1-e))<s&&(r&&console.log("thresh < MIN_THRESH "+o+" < "+"1e-14 eccentricity "+e),o=s),r&&console.log("Elliptic (not hyperbolic) OR small mean-anomaly"),e>.8&&t<Math.PI/3||m){r&&console.log("up to 60 degrees");var y=t/Math.abs(1-e);y*y>6*Math.abs(1-e)&&(y=Math.exp(Math.log(6*t)/3)),a=y,o>i&&(r&&console.log("thresh > THRESH (happens if e > 2)"),o=i)}if(f)for(r&&console.log("Elliptic 2");Math.abs(u)>o;)if(p++>7?(console.log("near_parabolic"),n=near_parabolic(a,e)-t):n=a-e*c(a)-t,a+=u=-n/(1-e*l(a)),!(p<20))throw new Error("n_iter >= 20");return h?d-a:d+a}(h,Math.degToRad(y)),v=h,S=u,M=Math.degToRad(p);b=Math.degToRad(b),g=Math.degToRad(g);var D=S*(l(w)-v),T=S*c(w)*Math.sqrt(1-Math.pow(v,2)),A=0;r&&(n+=" P: "+Math.round(1e3*D)/1e3+" Q: "+Math.round(1e3*T)/1e3+" "+t);var P=l(b)*D-c(b)*T,j=c(b)*D+l(b)*T,O=0;O=c(M)*j,D=P,T=j=l(M)*j,P=l(g)*D-c(g)*T,T=j=c(g)*D+l(g)*T,A=O,j=l(Math.degToRad(-90))*T-c(Math.degToRad(-90))*A,O=c(Math.degToRad(-90))*T+l(Math.degToRad(-90))*A,T=j,A=O;var x=a?23.436637219913795:0;return j=l(Math.degToRad(x))*T-c(Math.degToRad(x))*A,O=c(Math.degToRad(x))*T+l(Math.degToRad(x))*A,P*=149.5978707,j*=149.5978707,O*=149.5978707,r&&console.log(n),{x:P,y:j,z:O}}var f="("+function(){null!=self&&null==self.computePosition&&(self.computePosition=m)}.toString()+")()",g=[];g.push(m.toString()),g.push(f);var y=URL.createObjectURL(new Blob(g,{type:"application/javascript"}));window.computePosition2=m;var b=[];document.addEventListener("sm-running-3",(function e(){document.removeEventListener("sm-running-3",e),b.forEach((function(e){setTimeout((function(){!0===e.item.cartesian?h.postMessage(e):d.postMessage(e)}),500*key)}))}));var w=[];function D(){new v,null!=e.objectNames[e.name]&&(e.objectNames[e.name].unshift({name:"Sun",kepler:!0}),e.objectNames[e.name].forEach((function(t,a,r){if(!("JITblend"in t)&&!("JITkepler"in t)&&!("JITastronomy"in t)){var n=!t.kepler,o=r.find((function(e){return e.name===t.O})),s="v"in t?"-"+t.v:"",l=o&&"v"in o?"-"+o.v:"";if(n){i.g.fill(t),o&&i.g.fill(o);var h={itemUrl:M.ephUrlPrefix+t.name+s+c,item:t,orbitingUrl:null!=t.O?M.ephUrlPrefix+t.O+l+c:null,orbitingItem:o};if("priority"in e.simulation[e.name])var m=-1!==e.simulation[e.name].priority.findIndex((function(e){return e===t.name}));else{var f=t.name===e.simulation[e.name].observer,g=t.name===e.simulation[e.name].targets[0],v=t.name===e.simulation[e.name].targets[1];m=f||g||v}m?null!=t.O?w.push(h):d.postMessage(h):b.push(h)}else try{!function(t,a,r){var n=i.g.fill(r);if(null!=n.elements){if("priority"in e.simulation[e.name])var o=-1!==e.simulation[e.name].priority.findIndex((function(e){return e===r.name}));var s=o?3:1,l={elements:n,itemUrl:null,item:r,orbitingUrl:null,orbitingItem:e.objectNames[e.name][e.objectNames[e.name].findIndex((function(e){return e.name===r.O}))],functions:y,stepsPerOrbit:p*s,standards:M.standards};u.postMessage(l)}else console.log("el not found "+r.name)}(0,0,t)}catch(e){M.catch(e,"hpe")}}})));var t=0;document.addEventListener("ephemeris-schedule-arrived",(function(e){try{!function(e,a,r){var n,o;r.trace={color:(n={red:"#FF4136",yellow:"#FFDC00",aqua:"#7FDBFF",fuchsia:"#F012BE",blue:"#0074D9",lime:"#01FF70",white:"#ffffff",purple:"#b10dc9",teal:"#39cccc",green:"#2ecc40",gray:"#aaaaaa"},o=Object.keys(n),t%=o.length,n[o[t++]])};var s=i.g.fill(r);if(!("JITblend"in r)&&!("JITkepler"in r)&&!("JITastronomy"in r))if(s.hasOwnProperty("elements"))if(r.elements.epoch)if(null!=s){var l={elements:s,item:r,functions:y,stepsPerOrbit:p,standards:M.standards};u.postMessage(l)}else console.log("el not found"+e.name);else console.log("Epoch UNKNOWN "+JSON.stringify(r));else{null!=r.data&&console.log("handleArrivedEphemeris "+JSON.stringify(r));var c=null!=r.data?r.data:r.name+(null!=r.v?"-"+r.v:"")+".json";l={itemUrl:M.ephUrlPrefix+c,item:r},d.postMessage(l)}}(void 0,0,e.detail)}catch(e){console.log("Caught Exception esa "+e.description)}}))}function T(e){var t=new l(e),a=new S.Z;a.setEphemerisReference(t),r.dispatchEvent(new CustomEvent("ephemeris-schedule",{detail:t})),r.dispatchEvent(new CustomEvent("spaceobject-ephemeris-schedule",{detail:{ephemeris:t,spaceObject:a}}))}r.addEventListener("ephemeris-schedule",(function(e){var t=e.detail;
1w.forEach((function(e){t.name===e.item.O&&(e.orbitingSched=function(e){var t=[];return e.data.dates.forEach((function(a,r){var n={dateObj:new Date(e.data.dates[r]),vSn:e.vSnView[r],x:e.positionsView[3*r+0],y:e.positionsView[3*r+1],z:e.positionsView[3*r+2]};t.push(n)})),t}(t),e.item.kepler||d.postMessage(e))}))})),Promise.all([a.e(96),a.e(604),a.e(856)]).then(a.bind(a,1856)).then((function(t){t.default.getInstance(e.simulation[e.name]),setTimeout(D,1e3)})),d.onmessage=function(e){e.data.success?T(e.data):console.log("wEL fail "+e.data.result)},h.onmessage=function(e){e.data.success?T(e.data):console.log("wCL fail "+e.data.result)},u.onmessage=function(e){e.data.success?T(e.data):console.log("wKW fail "+e.data.result)}}return{getInstance:function(a,n){return t||(null==n&&(n=document.getElementById("canvascontainer")),t=new r(e,a,n)),t}}}(page);Date.prototype.getUTCJulian=function(){return this.getTime()/864e5+2440587.5};const T=D;a(561);var A=a(4209),P=a(7027),j=a(540),O=a(5709),x=a(486),R=a(3438),E=a(8535).Helpers,C=function(){var e,t=[],a=new A.t;function r(){var e=ApiPath+"space_object_data-0.1.0.php";(0,P.R)(document,"s3d-request-space-object-data").pipe((0,O.U)((function(e){var t;return{name:e.detail.name,onComplete:null!==(t=e.detail.onComplete)&&void 0!==t?t:function(){},requestTargeting:e.detail.requestTargeting}}))).subscribe((function(a){if(t.find((function(e){return e.name===a.name})))a.onComplete();else{var r="".concat(E.params({appName:"Spacein3d",appVersion:"".concat("0.3.9")}),"&").concat(E.params({q:a.name}));j.h.getJSON("".concat(e,"?").concat(r)).pipe((0,x.K)((function(e){console.error("Neo Api error ".concat(e.status," (").concat(e.request.url,")"))})),(0,R.b)((function(e){return console.log("Data obtained for ".concat(a.name),e)}))).subscribe((function(e){if(a.onComplete(),e){var t=e;t.requestTargeting=a.requestTargeting,canvas.dispatchEvent(new CustomEvent("s3d-new-space-object-data",{detail:t}))}else console.warn('No result for "'.concat(a.name,'" (Query: ').concat(r,")"))}))}})),this.add=function(e){t.push(e),a.next(e)},this.getObjectData=function(e){return i.g.get(e)},this.getObjects=function(){return t.map((function(e){return e.object}))},this.getObjectByName=function(e){return t[t.findIndex((function(t){return t.name===e}))]},this.deleteObjectByName=function(e){var a=t.findIndex((function(t){return t.name===e})),r=t[a].object;r.parent.remove(r),t.splice(a,1)},this.getObjectsForKeyValue=function(e,t){var a=Object.keys(i.g.data).filter((function(a,r,n){return i.g.data[a][e]===t})),r=[];return a.forEach((function(e){r.push(i.g.data[e])})),r},this.array=t,this.subject=a,S3D.SpaceObjects=this}
1return function(){return e||(e=this,r.bind(this)()),e}}(),I=(a(6541),a(3783)),B=(a(4916),a(3123),a(211)),V=a(8535).Helpers;function N(e,t){for(var a=0;a<t.length;a++){var r=t[a];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var k=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.name=t}var t,a,r;return t=e,(a=[{key:"altitudeTo",value:function(t){var a,r="string"==typeof t?t:t.name,n="".concat(this.name,"-altitudeTo-").concat(r),o="".concat(r,"-altitudeTo-").concat(this.name),i=null!==(a=e.subjects[n])&&void 0!==a?a:e.subjects[o];if(i)return i;var s=new B.xQ;return e.subjects[n]=s,s}},{key:"distanceTo",value:function(t){var a,r="string"==typeof t?t:t.name,n="".concat(this.name,"-distanceTo-").concat(r),o="".concat(r,"-distanceTo-").concat(this.name),i=null!==(a=e.subjects[n])&&void 0!==a?a:e.subjects[o];if(i)return i;var s=new B.xQ;return e.subjects[n]=s,s}},{key:"speedTo",value:function(t){var a="string"==typeof t?t:t.name,r="".concat(this.name,"-speedTo-").concat(a),n=e.subjects[r];if(n)return n;var o=new B.xQ;return e.subjects[r]=o,o}},{key:"update",value:function(){Object.keys(e.subjects).forEach((function(t){var a,r,n,o,i,s=e.subjects[t],l=t.split("-"),c=l[0],d=l[1],u=l[2];switch(c){case"SceneCamera":case"MoonCamera":n=V.getRenderer().cameraManager.getCameraByName(c);break;default:n=S3D.SpaceObjects.getObjectByName(c).object}switch(u){case"SceneCamera":case"MoonCamera":o=V.getRenderer().cameraManager.getCameraByName(u);break;default:o=S3D.SpaceObjects.getObjectByName(u).object}switch(d){case"altitudeTo":i=n.worldPosition.distanceTo(o.worldPosition),i-=null!==(a=n.radius)&&void 0!==a?a:0,i-=null!==(r=o.radius)&&void 0!==r?r:0;break;case"distanceTo":i=n.worldPosition.distanceTo(o.worldPosition)}s.next(i)}))}}])&&N(t.prototype,a),r&&N(t,r),e}();!function(e,t,a){t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a}(k,"subjects",[]);var L=function(){document.querySelector("#canvascontainer");var e,t=[];function a(){(0,P.R)(canvas,"spaceobject-ready").pipe((0,I.j)("detail","spaceObject")).subscribe((function(e){t[e.name]=new k(e.name)}));(0,P.R)(document,"renderer-up").pipe((0,I.j)("detail")).subscribe((function(e){e.observable.every.frame.subscribe((function(){Object.keys(t).forEach((function(e){t[e].update()}))}))})),S3D.Data=t}return function(){return e||(e=this,a.bind(this)()),e}}();const z=function(){new r.Vector3,new r.Vector3;var e,t,n={},o=document.querySelector("#canvascontainer"),i=document.querySelector("#canvas"),s=function(){return e||(e=this,l()),e};function l(){var l=e;document.addEventListener("s3d-get-model-basic",(function(e){(0,e.detail)(l)}));var c=page.shaders;T.getInstance(c),new C,new L,l.start=function(){},l.lateInit=function(){a.e(645).then(a.bind(a,645)).then((function(e){new e.default(document.querySelector("#canvascontainer"))})),Promise.all([a.e(885),a.e(940)]).then(a.bind(a,2742)).then((function(e){new e.default(o)})),a.e(729).then(a.bind(a,5729)).then((function(e){new e.default(t)})),a.e(143).then(a.bind(a,5143)).then((function(e){new e.default}))},Object.defineProperties(s.prototype,{SpaceObject:{enumerable:!0,value:S.Z},workerEphemeris:{enumerable:!0,get:function(){return workerEphemeris}}}),o.addEventListener("renderer-lateinit",(function(e){t=e.detail,l.lateInit()})),Object.assign(S3D,"sunSideOf",{sunSideOf:function(e,t,a){return d.subVectors(e.worldPosition,t.worldPosition),u.subVectors(a.worldPosition,t.worldPosition),d.angleTo(u)<Math.degToRad(90)},getDefaultGeometry:function(e,t){var a;switch(e){case"SphereGeometry":(a=n[t])||((a=n[t]=new r.SphereGeometry(1,t,Math.round(2/3*t))).name="Default SphereGeometry "+t)}return a},intersectPlanes:function(e,t,a,n){var o=e.x,i=e.y,s=e.z,l=t,c=a.x,d=a.y,u=a.z,h=n,p=new r.Vector4(l,h,-2,1),m=(new r.Matrix4).set(o,i,s,0,c,d,u,0,1,0,0,0,0,0,0,1),f=(new r.Matrix4).getInverse(m);p.applyMatrix4(f);var g=new r.Vector4(l,h,2,1),y=(new r.Matrix4).set(o,i,s,0,c,d,u,0,1,0,0,0,0,0,0,1),b=(new r.Matrix4).getInverse(y);
1g.applyMatrix4(b);var w=[];return w.push((new r.Vector3).copy(p)),w.push((new r.Vector3).copy(g)),w}}),Object.assign(r.Object3D.prototype,{alignToWorldUp:function(){var e=this.getWorldY(),t=new r.Vector3(0,1,0).angleTo(e),a=(new r.Quaternion).setFromAxisAngle(new r.Vector3(0,0,1),t);this.quaternion.multiply(a)},getWorldX:function(){return new r.Vector3(1,0,0).transformDirection(this.matrixWorld)},getWorldY:function(){var e=new r.Quaternion,t=new r.Vector3,a=new r.Vector3(0,1,0);return this.updateMatrixWorld(!0),this.getWorldQuaternion(e),t.copy(a).applyQuaternion(e),t.normalize()},getWorldZ:function(){var e=new r.Quaternion,t=new r.Vector3,a=new r.Vector3(0,0,1);return this.updateMatrixWorld(!0),this.getWorldQuaternion(e),t.copy(a).applyQuaternion(e),t.normalize()}});var d=new r.Vector3,u=new r.Vector3;Object.assign(r.Vector3.prototype,{signedAngleTo:function(e,t){d.copy(this).normalize(),u.copy(e).normalize();var a=d.clone().dot(u),r=Math.acos(a);return d.crossVectors(this,e),d.dot(t)<0&&(r=-r),r}}),Object.assign(r.Quaternion.prototype,{getAngle:function(){return 2*Math.acos(this.w)}}),i.addEventListener("spaceobject-ready",(function(e){var t=e.detail.spaceObject;"Earth"===t.name&&(S3D.EclipticPlaneNormal=t.orbitingPlaneNormal.clone())}))}return s}()},2783:(e,t,a)=>{"use strict";a.d(t,{Z:()=>W});a(9554),a(8309),a(9601),a(4747);var r,n,o,i=a(8852),s=a(6486),l=a.n(s),c=(a(2222),a(7327),a(6992),a(1249),a(2707),a(9575),a(1539),a(8783),a(2472),a(2990),a(8927),a(3105),a(5035),a(4345),a(7174),a(2846),a(4731),a(7209),a(6319),a(8867),a(7789),a(3739),a(9368),a(4483),a(2056),a(3462),a(678),a(7462),a(3824),a(5021),a(2974),a(5016),a(4129),a(3948),a(4895)),d=a(5490);const u=(n=new i.TextureLoader,o=0,function(){return r||((r=this).load=function(e,t,a,r){function i(e){o--,canvas.dispatchEvent(new CustomEvent("s3d-texture-loading",{detail:{inProgress:o>0}})),"function"==typeof t&&t(e)}function s(e){"function"==typeof a&&a(e)}function l(t){console.log("onError url "+e),o--,canvas.dispatchEvent(new CustomEvent("s3d-texture-loading",{detail:{inProgress:o>0}})),"function"==typeof r&&r(t)}canvas.dispatchEvent(new CustomEvent("s3d-texture-loading",{detail:{inProgress:!0}})),n.load(e,i,s,l)}),r});var h=a(211),p=a(8535).Helpers;function m(e){var t=this,a=p.getRenderer(),r=new u;if(!a)throw"Renderer not found for "+e.name;i.LOD.call(this),this.lodUpdate=this.update,c.Z.call(this),d.Z.call(this),this.subject=new h.xQ;var n=this;this.autoUpdate=!1;var o=null!=e.O,s=e.radius*S3D.MToLocal,m=(e.hasOwnProperty("trace")&&e.trace.color,null!=e.min?e.min/2:.0025),g=e.lodInf/p.LocalScale,y=e.siderealDay;y/=360,y=1/(y/=1e3),y=Math.degToRad(y);var b=e.semiMajor||s*p.LocalScale*1e3,w=e.flattening||0,v=b-w*b,S=s*p.LocalScale*1e3,M=new i.Vector3(b/S,v/S,b/S);this.textures=new WeakMap,this.findGeocentricRadius=function(e){var t=Math.cos,a=Math.sin,r=function(e){return Math.pow(e,2)},n=b,o=v,i=Math.degToRad(e),s=r(n*n*t(i))+r(o*o*a(i)),l=r(n*t(i))+r(o*a(i));return Math.sqrt(s/l)},this.findLocCartesian=function(e){var t=Math.degToRad(e.lat),a=this.findGeocentricRadius(e.lat),r=Math.sin(t)*a;r/=v;var n=Math.cos(t)*a,o=Math.cos(Math.degToRad(e.lng))*n;o/=b;var s=-Math.sin(Math.degToRad(e.lng))*n;return s/=b,new i.Vector3(o,r,s)};var D=!1;Object.defineProperties(this,{positionDelta:{enumerable:!0,get:function(){return E}},radius:{enumerable:!0,value:s},name:{enumerable:!0,value:e.name},positionEph:{enumerable:!0,get:function(){return B}}}),this.scale.copy(new i.Vector3(s,s,s)),this.scale.multiply(M);e.hasOwnProperty("trace")&&new i.Color(e.trace.color);var T=p.mobileAndTablet?{parameters:[0,5,10,20,30,40,50,60,70,80,90,100],samples:[3,14,16.5,19,21,23,25,27,29,30.5,31.5,32]}:{parameters:[0,5,10,20,30,40,50,60,70,80,90,100],samples:[3,14,19,24,29,34,39,44,49,54,59,64]},A=new i.LinearInterpolant(T.parameters,T.samples,1),P=e.ress;if(!Array.isArray(P))throw"No array found for "+this.name;P=(P=P.filter((function(e){return e<a.maxTextureSize}))).sort((function(e,t){return e-t}));var j=a.camera.fov,O=screen.availHeight?screen.availHeight:screen.height?screen.height:1080,x=j/O,R=2*Math.PI*s*.5;P.forEach(function(t,a,r){var n=R/(t/2)/Math.tan(Math.degToRad(x)),o=Math.max(m,s/n),l=2*i.Math.radToDeg(Math.atan(o))/j,c=A.evaluate(100*l);a==r.length-1&&(c=A.evaluate(100));var d=e.name+"-"+t,u=new f(c,d,".jpg");this.textures.set(u,{url:p.texUrlPrefix+d+".jpg",requested:!1}),e.specxxxxxxxxxxxxxx&&(u.material.bumpScale=.05,u.material.specularMap=(new i.TextureLoader).load(p.texUrlPrefix+"Earth-spec.jpg"),u.material.specular=new i.Color("rgb(30, 30, 30)")),e.spec&&l>.1&&(u.specularUrl=p.texUrlPrefix+e.name+"-spec.jpg"),u.name="LOD level "+u.name+" @"+p.formatNumber(Math.round(n*p.LocalScale)),this.addLevel(u,n)}.bind(this)),this.levels.length&&(this.pixelPerfectDetailDistance=this.levels[0].distance,this.levels[0].distance=0,this._currentLevel=this.levels.length-1);var E=new i.Vector3,C=new i.Vector3,I=new i.Vector3,B=new i.Vector3,V=new i.Vector3,N=new i.Vector3,k=new i.Vector3;this.worldPosition=new i.Vector3,e.label&&(this.add(this.label=new i.Group),this.label.name="LabelEmpty"),e.atm&&p.supportsAdvancedShading;var L;this.checkEarthRotation=function(){var e,t,r=(e=a.smTime,t=p.secondsFromJ2000(e),t/=60,t/=60,t/=24,2*Math.PI*(.779057273264+1.0027378119113546*t)),o=new i.Ob
1ject3D;o.rotateY(r);var l=i.Math.radToDeg(n.rotation.y)-i.Math.radToDeg(o.rotation.y),c=2*Math.PI*s*p.LocalScale,d=l*(c/=360);console.log("Earth's rotation rounding error ".concat(1e3*d*1e3," mm (").concat(l,"°), time passed ").concat(L/OneDay," days, renderTime passed ").concat((a.smTime-window.playController.start)/OneDay))};var z={date:0,rotation:new i.Euler};this.worldPositionDelta=new i.Vector3;var F,U=new i.Vector3;this.start=function(){"development"===page.mode&&"Earth"===n.name&&setInterval(n.checkEarthRotation,1e5)};var G=l().throttle(function(){F&&(a.camera.updateMatrixWorld(),this.updateMatrixWorld(),this.lodUpdate(F),J=1/0,this.visible=this.distanceToCamera<g,this.visible=this.visible&&!this.hide)}.bind(this),100),H=l().throttle((function(){t.visible&&function(){var t=n._currentLevel,a=n.levels[t].object;if(!a.textureLoaded){var o=n.textures.get(a),s=o.url;if(!s)throw new Error("Texture not set for "+n.name);o.requested?console.log("Texture load already in progress for  (".concat(o.url,")")):(r.load(s,(function(e){a.textureLoaded=!0,n.levels.forEach((function(a,r,n){var o=a.object;r<=t&&(o.material.map=e,o.material.needsUpdate=!0)}))}),void 0,(function(){console.log("Texture onError (".concat(s,")")),a.textureLoaded=!0;for(var e=262144,r=new Uint8Array(786432),o=new i.Color(16777215),l=Math.floor(255*o.r),c=Math.floor(255*o.g),d=Math.floor(255*o.b),u=0;u<e;u++){var h=3*u;r[h]=l,r[h+1]=c,r[h+2]=d}var p=new i.DataTexture(r,512,512,i.RGBFormat);n.levels.forEach((function(e,a,r){var n=e.object;a<=t&&(n.material.map=p,n.material.needsUpdate=!0)}))})),o.requested=!0,n.textures.set(a,o))}e.spec&&(a.material.bumpScale=.04*n.scale.x)}()}),200);this.update=function(){this.rendered=!1,G(),H()},this.orient=function(e,t,a){var r=function(e){var t=p.secondsFromJ2000(e);return y*t}(a);n.rotation.copy(z.rotation),n.rotateY(r)},this.move=function(e){if(I.copy(B),C.copy(this.position),o&&U.copy(this.worldPosition),B.copy(e),this.position.addVectors(B,N),o?this.getWorldPosition(this.worldPosition):this.worldPosition.copy(this.position),this.positionIsValid&&
1(E.subVectors(this.position,C),o&&this.worldPositionDelta.subVectors(this.worldPosition,U),V.subVectors(B,I),k.subVectors(E,V).length()),this.positionIsValid=!0,isNaN(this.position.x))throw new Error("Position isNaN for ".concat(this.name))};var J=1/0,W=0;if(this.sizing=function(e,t,r){a.camera.tweeningInProgress!=D&&(D=a.camera.tweeningInProgress);var o=n.worldPosition.distanceTo(e.worldPosition),i=o/e.zoom;i<J&&(J=i,F=e),t&&(n.distanceToCamera=o),t&&(W=a.useTrueObjectSizing?0:m/e.zoom),t&&this.subject.next({name:this.name,distanceToCamera:o*S3D.LocalToKm});var l=W*o;if(l=r||s>=l?s:l,this.scale.set(l,l,l),this.scale.multiply(M),this.updateMatrixWorld(),isNaN(this.scale.x))throw new Error("Position isNaN for ".concat(this.name))},this.getTrueScalingDistance=function(){var e=a.useTrueObjectSizing?0:m/a.camera.zoom;return s/e},this.setOffset=function(e){N.copy(e)},this.reset=function(){this.positionIsValid=!1,function(){if(n.rotation.set(0,0,0),e.northPole){var t=e.northPole;n.rotateZ(Math.degToRad(-90)),n.rotateX(-Math.degToRad(t.RA)),n.rotateZ(Math.degToRad(t.DEC)),n.rotateY(Math.degToRad(-t.RA))}e.primeMeridian&&n.rotateY(Math.degToRad(e.primeMeridian)),"2018LA"===page.name&&"Earth"===n.name&&(n.rotateY(Math.degToRad(6)),console.log("Rotate for 2018LA")),z.date=J2000,z.rotation.copy(n.rotation)}(),L=0},this.reset(),p.debug){var q=new i.AxesHelper(10);q.visible=!1,q.name="Helper",this.add(q)}}function f(e,t,a){var r=this;i.Mesh.call(this);var n=t+a,o=Math.round(e),s=(Math.floor(2/3*e),S3D.getDefaultGeometry("SphereGeometry",o));if(!s)throw new Error("Default geometry not found "+t+o);this.geometry=s,this.material=new i.MeshLambertMaterial({precision:null}),this.material.shininess=50,this.material.name=n,webAppSettings.graphicsHighQuality,this.name=t,this.textureLoaded=!1,this.onAfterRender=function(){return r.parent.rendered=!0}}m.prototype=Object.create(i.LOD.prototype),m.prototype.constructor=m,f.prototype=Object.create(i.Mesh.prototype),f.prototype.constructor=f;var g=a(8840),y=a(8535).Helpers;function b(e,t){var a=this,r=y.getRenderer();if(!r)throw"Renderer not found for "+e.name;i.Mesh.call(this),c.Z.call(this),d.Z.call(this),this.subject=new h.xQ;var n=this,o=null!=e.O,s=e.radius*S3D.MToLocal;this.radius=s;var l=!0,u=2*s;this.name=e.name,this.geometry.name=e.name;var p=null!=e.scaleCorrection?e.scaleCorrection:1;this.scale.copy(new i.Vector3(s,s,s)),this.scale.multiplyScalar(p);var m=null!=e.min?e.min/2:.0025,f=e.lodInf/y.LocalScale,b=2*f;this.pixelPerfectDetailDistance;var w=!1,v=e.siderealDay;v/=360,v=1/(v/=1e3),v=Math.degToRad(v);var S=new i.Vector3,M=new i.Vector3,D=new i.Vector3;this.positionEph=new i.Vector3;var T=new i.Vector3,A=new i.Vector3,P=new i.Vector3;new i.Vector3;this.worldPosition=new i.Vector3,Object.defineProperties(this,{positionDelta:{enumerable:!0,get:function(){return S}}}),e.label&&(this.add(this.label=new i.Group),this.label.name="LabelEmpty"),this.start=function(){!function(){if(n.rotation.set(0,0,0),null!=e.elements&&e.northPole){var t=e.northPole;n.rotateZ(Math.degToRad(-90)),n.rotateX(-Math.degToRad(t.RA)),n.rotateZ(Math.degToRad(t.DEC))}}(),f&&setInterval((function(){l=!0}),200)},this.update=function(){this.rendered=!1,l&&(n.distanceToCamera<b&&!w&&((new g.L).load(y.modelsUrlPrefix+e.name+".obj",(function(t){var a=t.children[0];n.geometry=a.geometry.clone();var o=(new i.TextureLoader).load(y.texUrlPrefix+e.name+"-diffuse.jpg",(function(e){var t=e.image.naturalWidth;n.pixelPerfectDetailDistance=r.camera.calculatePixelPerfectDistance(t,u)}),void 0,(function(){console.log("Tex error "+e.name)}));n.material=new i.MeshBasicMaterial({map:o})}),(function(e){}),(function(e){console.log(n.name+" OBJ load error")})),w=!0),this.visible=this.distanceToCamera<f,this.visible=this.visible&&!this.hide,l=!1)},this.orient=function(e,t){var a=v*e;this.rotateY(a)},this.move=function(t){if(D.copy(this.positionEph),this.positionEph.copy(t),T.subVectors(this.positionEph,D),M.copy(this.position),this.position.addVectors(this.positionEph,A),this.positionIsValid&&
1(S.subVectors(this.position,M),P.subVectors(S,T).length()),e.O,o?this.getWorldPosition(this.worldPosition):this.worldPosition.copy(this.position),this.positionIsValid=!0,isNaN(this.position.x))throw new Error("Position isNaN for ".concat(this.name))};var j=0;if(this.sizing=function(e,t,a){var o=n.worldPosition.distanceTo(e.worldPosition);t&&(n.distanceToCamera=o),t&&(j=r.useTrueObjectSizing?0:m/e.zoom),t&&this.subject.next({name:this.name,distanceToCamera:o*S3D.LocalToKm});var i=j*o;if(i=a||u>=i?u:i,this.scale.set(i,i,i),this.scale.multiplyScalar(p),this.updateMatrixWorld(),isNaN(this.scale.x))throw new Error("Position isNaN for ".concat(this.name))},this.getTrueScalingDistance=function(){var e=r.useTrueObjectSizing?0:m/r.camera.zoom;return s/e},this.setOffset=function(e){A.copy(e)},this.onAfterRender=function(){return a.rendered=!0},y.debug){var O=new i.AxesHelper(5);O.visible=!1,O.name="Helper",this.add(O)}}b.prototype=Object.create(i.Mesh.prototype),b.prototype.constructor=b;a(2772),a(4986),a(7042),a(4916),a(5306);var w=a(8217),v=a(8535).Helpers;function S(e,t){var a=this,r=v.getRenderer();i.Mesh.call(this),c.Z.call(this),d.Z.call(this),this.subject=new h.xQ;var n=this,o=null!=e.O,s=e.diameter*S3D.MToLocal,l=e.radius*S3D.MToLocal;this.radius=l,this.name=e.name,this.geometry.name=e.name,this.scale.copy(new i.Vector3(l,l,l));var u,p,m=null!=e.min?e.min/2:.005,f=e.lodInf/v.LocalScale,g=1e3*s*100,y=!1,b=e.siderealDay;b/=360,b=1/(b/=1e3),b=Math.degToRad(b);var S=(new i.TextureLoader).load(v.texUrlPrefix+e.name+".png"),M=new i.SpriteMaterial({map:S});(u=new i.Sprite(M)).scale.setScalar(2),e.sprite&&e.sprite.scale&&u.scale.multiplyScalar(e.sprite.scale),this.fallbackSprite=u,n.add(u);var D=new i.Vector3,T=new i.Vector3,A=new i.Vector3;this.positionEph=new i.Vector3;var P=new i.Vector3,j=new i.Vector3,O=new i.Vector3;this.worldPosition=new i.Vector3,Object.defineProperties(this,{positionDelta:{enumerable:!0,get:function(){return D}}}),e.label&&(this.add(this.label=new i.Group),this.label.name="LabelEmpty"),this.start=function(){!function(){if(n.rotation.set(0,0,0),null!=e.elements&&e.northPole){var t=e.northPole;n.rotateZ(Math.degToRad(-90)),n.rotateX(-Math.degToRad(t.RA)),n.rotateZ(Math.degToRad(t.DEC))}}()};var x=_.throttle(function(){var t;this.positionIsValid&&n.distanceToCamera&&(t=!webAppSettings.lowDataMode&&n.distanceToCamera<g),t&&(y||(console.log("loadFBX  self.distanceToCamera "+n.distanceToCamera+" < "+g+" this.positionIsValid "+this.positionIsValid),canvas.dispatchEvent(new CustomEvent("s3d-assets-loading",{detail:{inProgress:!0}})),function(){var t=new w.y,a=e.name;t.manager.setURLModifier((function(t){var a="";if(0===t.indexOf("blob:")||0===t.indexOf("data:"))return t;var r=t.substring(t.lastIndexOf("/")+1);switch(r.slice(r.lastIndexOf(".")+1).toLowerCase()){case"fbx":a=t;break;default:var n=e.textureFormat;n&&(r=r.replace(/\.[^/.]+$/,n)),a=v.texUrlPrefix+r}return a})),t.load(v.modelsUrlPrefix+a+".fbx",(function(t){(p=t).name="FBX",p.traverse((function(e){e.layers.enable(S3D.Layers.BLOOM),e.layers.enable(S3D.Layers.SCREENSHOT),e.layers.enable(S3D.Layers.SCENECAMERA)})),e.geometry&&(e.geometry.scale&&p.scale.multiplyScalar(e.geometry.scale),e.geometry.position&&p.position.add(e.geometry.position),e.geometry.rotation&&p.rotation.setFromVector3(e.geometry.rotation)),n.add(p),canvas.dispatchEvent(new CustomEvent("s3d-assets-loading",{detail:{inProgress:!1}}))}),(function(e){console.log(e.loaded/e.total*100+"% loaded")}),(function(e){console.log("".concat(n.name," FBX load error"),e)}))}(),y=!0)),u&&(u.visible=!(p&&t)),p&&(p.visible=!u.visible),this.visible=this.distanceToCamera<f,this.visible=this.visible&&!this.hide}.bind(this),200);this.update=function(){this.rendered=!1,x()},this.orient=function(e,t){var a=b*e;this.rotateY(a)},this.move=function(e){A.copy(this.positionEph),this.positionEph.copy(e),P.subVectors(this.positionEph,A),T.copy(this.position),this.position.addVectors(this.positionEph,j),o?this.getWorldPosition(this.worldPosition):this.worldPosition.copy(this.position),this.positionIsValid&&
1(D.subVectors(this.position,T),O.subVectors(D,P).length()),this.positionIsValid=!0};var R=0;if(this.sizing=function(e,t,a){var o=n.worldPosition.distanceTo(e.worldPosition);t&&(n.distanceToCamera=o),t&&(R=r.useTrueObjectSizing?0:m/e.zoom),t&&this.subject.next({name:this.name,distanceToCamera:o*S3D.LocalToKm});var i=R*o;i=a||l>=i?l:i,this.scale.set(i,i,i),this.updateMatrixWorld()},this.getTrueScalingDistance=function(){var e=r.useTrueObjectSizing?0:m/r.camera.zoom;return l/e},this.setOffset=function(e){j.copy(e)},this.onAfterRender=function(){return a.rendered=!0},v.debug){var E=new i.AxesHelper(5);E.visible=!1,E.name="Helper",this.add(E)}}S.prototype=Object.create(i.Mesh.prototype),S.prototype.constructor=S;a(2481),a(86);var M=a(1564),D=a(8535).Helpers,T=a(6194).Z;function A(e){var t=this,a=D.getRenderer();if(!a)throw"Renderer not found for "+e.name;i.Sprite.call(this),c.Z.call(this),d.Z.call(this),this.subject=new h.xQ;var r=this,n=null!=e.O,o=e.w,s=e.size*S3D.MToLocal,l=s/2,u=!0,p=0,m=null!=e.min?e.min:.005,f=e.lodInf/D.LocalScale;function g(e){var t=e.image.naturalHeight,n=a.camera.fov/1080,o=s/t/Math.tan(Math.degToRad(n));r.pixelPerfectDetailDistance=o}this.visible=!1,this.name=e.name;var y=function(){(new i.TextureLoader).load(D.texUrlPrefix+e.name+".png",(function(e){r.material.map=e,r.material.needsUpdate=!0}),void 0,(function(){r.hasOwnProperty("material")?r.material.hasOwnProperty("map")?(e.astrBody===S3D.AstronomicalBody.MOON?(r.material.map=(new i.TextureLoader).load(D.texUrlPrefix+"fallbackMoon.png",g),r.fallbackTexture=!0):(r.material.map=(new i.TextureLoader).load(D.texUrlPrefix+"fallback.png",g),r.fallbackTexture=!0,console.log("Tex err "+e.name)),r.material.needsUpdate=!0):console.log("No map found for "+r.name):console.log("No material found for "+r.name)}))};this.material=new i.SpriteMaterial({color:16777215}),this.material.alphaTest=.01,this.material.transparent=!0,e.lodInf===1/0&&y(),"2018LA"===e.name&&(this.material.depthTest=!1,console.log("2018LA"));var b=new i.Vector3,w=new i.Vector3,v=new i.Vector3;this.positionEph=new i.Vector3;var S=new i.Vector3,M=new i.Vector3,T=new i.Vector3;this.worldPosition=new i.Vector3,this.start=function(){f&&setInterval((function(){u=!0}),200)},this.update=function(){this.rendered=!1,u&&(this.visible=this.distanceToCamera<f,this.visible=this.visible&&!this.hide,u=!1,this.visible&&null==r.material.map&&y())},Object.defineProperties(this,{move:{enumerable:!0,value:function(t){v.copy(this.positionEph),this.positionEph.copy(t),S.subVectors(this.positionEph,v),w.copy(this.position),this.position.addVectors(this.positionEph,M),b.subVectors(this.position,w),T.subVectors(b,S).length(),e.O,n?this.getWorldPosition(this.worldPosition):this.worldPosition.copy(this.position),this.positionIsValid=!0,null!=this.halo&&(this.halo.material.uniforms.viewVector.value=a.camera.worldPosition.clone().sub(a.scene.getObjectByName("Sun").position))}},positionDelta:{enumerable:!0,get:function(){return b}},setOffset:{enumerable:!0,value:function(e){M.copy(e)}},radius:{enumerable:!0,value:l}}),this.scale.copy(new i.Vector3(s,s,s)),e.label&&(this.add(this.label=new i.Group),this.label.name="LabelEmpty"),this.orient=function(e,t){var a=-Math.clamp(o*e,-3.14*t,3.14*t);p+=a,this.material.rotation=p};var A=0;this.sizing=function(e,t,n){var o=r.worldPosition.distanceTo(e.worldPosition);t&&(r.distanceToCamera=o),t&&(A=a.useTrueObjectSizing?0:m/e.zoom),t&&this.subject.next({name:this.name,distanceToCamera:o*S3D.LocalToKm});var i=A*o;i=n||s>=i?s:i,this.scale.set(i,i,i),this.updateMatrixWorld()},this.getTrueScalingDistance=function(){var e=a.useTrueObjectSizing?0:m/a.camera.zoom;return l/e},this.onAfterRender=function(){return t.rendered=!0},D.debug&&window.rendererDebugger&&rendererDebugger.addAxis(this)}function P(){if(i.Mesh.call(this),this.geometry=new i.PlaneGeometry,this.material=new i.MeshLambertMaterial({color:16777215,side:i.DoubleSide}),this.material.transparent=!0,D.debug){var e=new i.AxesHelper(1);e.visible=!1,e.name="Helper",this.add(e)}}function j(e,t,a){var r=D.getRenderer();if(!r)throw"Renderer not found for "+e.name;P.call(this);var n=this,o=e.size;this.distanceToCamera=1/0;var s,l=0;s="ress"in e?e.ress[0]:256;var c=20*r.camera.calculatePixelPerfectDistance(s,o);this.worldPosition=new i.Vector3,this.visible=!1,this.name=e.name;var d=90-t.lat,u=t.lng;u+=90;var h=new i.Spherical(1,Math.degToRad(d),Math.degToRad(u)),p=(new i.Vector3).setFromSpherical(h);function m(t){n.pixelPerfectDetailDistance=r.camera.calculatePixelPerfectDistance(t.image.naturalHeight,o),l=10*n.pixelPerfectDetailDistance,s!==t.image.naturalHeight&&console.log(e.name+" Dimension incorrect")}this.position.add(p.multiplyScalar(1+e.sizeRelativeToParent/2)),this.lookAt(new i.Vector3),this.rotateX(Math.degToRad(-90)),this.rotateY(2*Math.PI*Math.random()),this.scale.multiplyScalar(e.sizeRelativeToParent),this.radius=o/2,this.layers.enable(S3D.Layers.SCENECAMERA),this.update=function(){this.updateMatrixWorld(),this.worldPosition.setFromMatrixPosition(this.matrixWorld)},Object.defineProperties(this,{spherical:{enumerable:!0,value:h}}),setInterval((function(){if(n.distanceToCamera=n.worldPosition.distanceTo(r.camera.worldPosition),n.visible=n.distanceToCamera<l,n.distanceToCamera<c&&null==n.material.map&&(n.material.map=(new i.TextureLoader).load(D.texUrlPrefix+a,m),n.label&&n.label.video)){var e=n.label.video.getElementsByTagName("source")[0],t=e.getAttribute("data-src");t&&(e.src=t)}}),500),e.label&&(this.add(this.label=new i.Group),this.label.name="LabelEmpty")}function O(e,t,a){var r=D.getRenderer();if(!r)throw"Renderer not found for "+e.name;i.Group.call(this);var n,o=new M.cp(t),s=t.querySelector("div.position"),l=(t.querySelector("iframe.position"),new x),c=e.size,d=6e3*r.camera.calculatePixelPerfectDistance(315,c),u=!0,h=e.eventTime,p=this;function m(e){try{e.stopPropagation(),"backfaceVisibility"in s.style?s.style.backfaceVisibility="hidden":(console.log("No backfaceVisibility"),s.setAttribute("style","-webkit-backface-visibility: hidden; backface-visibility: hidden;")),console.log("Capture div hidden"),r.container.addEventListener("mousedown",f),r.container.addEventListener("touchstart",f);var t=p.getWorldY(),a=new i.Vector3(0,1,0).angleTo(t),n=(new i.Quaternion).setFromAxisAngle(new i.Vector3(0,0,1),a),o=p.quaternion.clone();o.multiply(n),new T.Tween({t:0}).to({t:1}
1,100).onUpdate((function(e){p.quaternion.slerp(o,e.t)})).onComplete((function(){var e=new i.Vector3,t=new i.Vector3;l.getWorldDirection(t),e.addVectors(l.worldPosition,t.multiplyScalar(100));var a=r.camera.getWorldX();e.add(a.multiplyScalar(10)),r.camera.moveAndSlewToTarget(e,l,(function(){r.resetTo(!1,h)}))})).start()}catch(e){D.catch(e)}}function f(e){"backfaceVisibility"in s.style?s.style.backfaceVisibility="visible":(console.log("No backfaceVisibility"),s.setAttribute("style","-webkit-backface-visibility: visible; backface-visibility: visible;")),console.log("Restored capture div"),g(),r.container.removeEventListener("mousedown",f),r.container.removeEventListener("touchstart",f)}function g(){var e=r.sun.position;p.lookAt(e.x,p.position.y,e.z),p.rotateY(Math.degToRad(120));var t=p.up.angleTo(a);p.rotateZ(-t/2)}this.distanceToCamera=1/0,this.pixelPerfectDetailDistance=r.camera.calculatePixelPerfectDistance(315,c),this.name=e.name,n=3e3*p.pixelPerfectDetailDistance,o.scale.setScalar(e.sizeRelativeToParent),p.add(o),l.name=p.name+" empty",l.scale.setScalar(5),l.translateX(45),l.translateY(7),p.add(l),this.update=function(){},setInterval((function(){p.distanceToCamera=p.worldPosition.distanceTo(r.camera.worldPosition),p.visible=p.distanceToCamera<n;var e=r.smTime;Math.abs(h-e),t.style.display=p.visible?"block":"none",p.visible?t.classList.add("show"):t.classList.remove("show"),p.distanceToCamera<d&&u&&(u=!1)}),500),s.addEventListener("mousedown",m),s.addEventListener("touchstart",m),requestAnimationFrame(g),window.rendererDebugger&&rendererDebugger.addAxis(this,!1,25)}function x(){if(!D.getRenderer())throw"Renderer not found for "+objectData.name;i.Group.call(this),window.rendererDebugger&&rendererDebugger.addAxis(this)}function R(e,t,a){i.Mesh.call(this),e=e||null,t=t||16/9;var r=(.25-(a=a||1/8)/2)*Math.PI*2,n=a*Math.PI*2;this.regenerateSphere=function(e){var t=2*a/e,o=(.5-t/2)*Math.PI,s=t*Math.PI;this.geometry=new i.SphereGeometry(1,32,2/3*32,r,n,o,s),this.sphereSliceSize=new i.Vector2(n,s)},this.regenerateSphere(t),this.material=new i.MeshBasicMaterial({precision:null,map:e,transparent:!0,alphaMap:(new i.TextureLoader).load(D.texUrlPrefix+"videoAlphaMap.jpg")}),this.scale.setScalar(1.0005),this.layers.enable(S3D.Layers.SCENECAMERA),D.debug&&window.rendererDebugger&&rendererDebugger.addAxis(this)}function E(e){i.Sprite.call(this),this.scale.set(55,30.9375,1);var t=(new i.TextureLoader).load(D.texUrlPrefix+e+".png");this.material=new i.SpriteMaterial({map:t,transparent:!0}),this.name="CameraChase",this.layers.enable(1),this.setSize=function(e){this.scale.x=e.x,this.scale.y=e.y},window.rendererDebugger&&window.rendererDebugger.addAxis(this,void 0,1.5)}function C(){i.Sprite.call(this);var e=this,t=new i.LinearInterpolant([1],[1],1);this.setSize=function(e){this.scale.x=e.x,this.scale.y=e.y},this.material=new i.SpriteMaterial({transparent:!0}),this.scale.set(55,30.9375,1),this.name="CameraZoom",this.visible=!1,this.position.x=.625,this.position.y=.05,this.layers.enable(1);var a=1,r=(new i.TextureLoader).load(D.texUrlPrefix+"ZOOM.png",(function(r){a=r.image.naturalHeight/56,r.wrapT=i.RepeatWrapping,r.repeat.set(1,1/a),r.offset.set(0,1/a),e.material.map=r,e.visible=!0,t=new i.LinearInterpolant([.5,1,1.5,2,20],[0,1/a,2/a,3/a,(a-1)/a],1)}));this.setZoomlevel=function(e){e=e<2?Math.round(2*e)/2:Math.floor(e),r.offset.y=t.evaluate(e),new T.Tween(this.material).to({opacity:1===e?1/3:1},75).start()},window.rendererDebugger&&window.rendererDebugger.addAxis(this,!0,1.5)}A.prototype=Object.create(i.Sprite.prototype),A.prototype.constructor=A,window.SpaceObjectSprite=A,P.prototype=Object.create(i.Mesh.prototype),P.prototype.constructor=P,j.prototype=Object.create(P.prototype),j.prototype.constructor=j,window.SpaceIcon=j,O.prototype=Object.create(i.Group.prototype),O.prototype.constructor=O,window.SpaceEmbed=O,x.prototype=Object.create(i.Group.prototype),x.prototype.constructor=x,window.SpaceEmpty=x,R.prototype=Object.create(i.Mesh.prototype),R.prototype.constructor=R,window.SpaceVideo=R,E.prototype=Object.create(i.Sprite.prototype),E.prototype.constructor=E,window.CameraCockpitButton=E,C.prototype=Object.create(i.Sprite.prototype),C.prototype.constructor=C,window.CameraCockpitButtonZoom=C;a(8264),a(3689),a(9714),a(4197),a(6495),a(8255),a(285);var I=a(8535).Helpers;var B=new function(){var e=URL.createObjectURL(new Blob(["(",function(){self.onmessage=function(e){var t=e.data,a=t.name,r=t.positionHighPAb,n=function(e,t){for(var a=new Float64Array(e),r=new ArrayBuffer(2*a.length*4),n=new Float32Array(r),o=0,i=0,s=0;o<a.length;i=2*++o,s=3*o)n[3*i+0]=a[s+0],n[3*i+1]=a[s+1],n[3*i+2]=a[s+2],n[3*(i+1)+0]=a[s+0],n[3*(i+1)+1]=a[s+1],n[3*(i+1)+2]=a[s+2];return r}(r),o=function(e){for(var t=new ArrayBuffer(2*e),a=new Uint16Array(t),r=0;r<e&&r<=65535;r++)a[r]=r;return t}(n.byteLength/3/4),i=function(e,t){for(var a=new Float64Array(e),r=new ArrayBuffer(2*a.length*4),n=new Float32Array(r),o={x:0,y:0,z:0},i={x:0,y:0,z:0},s={x:0,y:0,z:0},l=a.length/3*2,c=0,d=0,u=0;c<l;c+=2)d=3*c,u=3*(c+1),i.x=a[d/2+0],i.y=a[d/2+1],i.z=a[d/2+2],s.x=a[(d/2+3)%a.length+0],s.y=a[(d/2+3)%a.length+1],s.z=a[(d/2+3)%a.length+2],o.x=s.x-i.x,o.y=s.y-i.y,o.z=s.z-i.z,n[d+0]=o.x,n[d+1]=o.y,n[d+2]=o.z,n[u+0]=o.x,n[u+1]=o.y,n[u+2]=o.z,"Earth"===t&&c>1018&&(console.log("i "+c+" positionsView.length "+a.length+" offset / 2 "+d/2+" ((offset / 2 + 3) % positionsView.length) "+(d/2+3)%a.length),console.log(a[d/2+0]),console.log(JSON.stringify(i)),console.log(a[(d/2+3)%a.length+0]),console.log(JSON.stringify(s)),console.log("Wi "+c+" direction "+JSON.stringify(o)));return r}(r);self.postMessage({name:a,duplicatedPositions:n,vertexIDs:o,directionVectors:i},[n,o,i])}}.toString(),")()"],{type:"application/javascript"}));function t(e,t){this.name=e,this.callback=t}this.worker=new Worker(e);var a=[];this.registerOnMessage=function(e,r){a.push(new t(e,r))},this.worker.onmessage=function(e){var t=e.data;a.forEach((function(a){a.name===t.name&&"function"==typeof a.callback&&a.callback(e)}))}};function V(e,t){var a=this,r=I.getRenderer();if(!r)throw"Renderer not found for "+t.name;i.Mesh.call(this),c.Z.call(this);var n=.005*(I.mobileAndTablet?1.25:1),o=1,s=e.positionsView,l=e.data.positionHighPAb.slice(0),d=Math.trunc(Math.min(t.trace.tail*(s.length/3),s.length/3)),u=new i.Vector3;this.name="Ribbon "+t.name;var h=this,p=1;this.geometry=new i.BufferGeometry,this.geometry.setAttribute("position",new i.BufferAttribute(new Float32Array(2*s.length),3)),this.positionAttribute=this.geometry.getAttribute("position"),this.geometry.setAttribute("direction",new i.BufferAttribute(new Float32Array(2*s.length),3)),this.directionAttribute=this.geometry.getAttribute("direction"),this.geometry.setAttribute("vertexID",new i.BufferAttribute(new Uint16Array(s.length/3*2),1)),this.vertexIDAttribute=this.geometry.getAttribute("vertexID"),B.registerOnMessage(t.name,(function(e){var t=e.data;h.positionAttribute.set(new Float32Array(t.duplicatedPositions)),h.positionAttribute.needsUpdate=!0,h.vertexIDAttribute.set(new Uint16Array(t.vertexIDs)),h.vertexIDAttribute.needsUpdate=!0,h.directionAttribute.set(new Float32Array(t.directionVectors)),h.directionAttribute.needsUpdate=!0;for(var r=(h.vertexIDAttribute.count-2)/2,n=[],o=0;o<r;o++){var i=2*o+0,s=2*o+1,l=2*o+2,c=2*o+3;n.push(i,s,l),n.push(l,s,c)}a.geometry.setIndex(n)})),B.worker.postMessage({name:t.name,positionHighPAb:l},[l]),this.color=new i.Color(t.trace.color);var m={ribbonWidth:{type:"f",value:n},ribbonColor:{type:"v3",value:this.color},orbitCentralBodyPosition:{type:"v3",value:new i.Vector3},solarSystemOffset:{type:"v3",value:u},tailKey:{type:"f",value:0},tail:{type:"f",value:d},count:{type:"f",value:this.vertexIDAttribute.count/2},taperLength:{type:"f",value:t.fullOrbit?this.vertexIDAttribute.count/2:d},currentKey:{type:"f",value:0},wrapKeys:{type:"b",value:!1},objectPosition:{type:"v3",value:new i.Vector3}};function f(){var e=1/p;h.material.uniforms.ribbonWidth.value=e*o*n}this.material=new i.ShaderMaterial({uniforms:m,vertexShader:'attribute float vertexID;\r\nattribute vec3 direction;\r\nuniform vec3 objectPosition;\r\nuniform float ribbonWidth;\r\nuniform vec3 ribbonColor;\r\nuniform vec3 orbitCentralBodyPosition;\r\nuniform vec3 solarSystemOffset;\r\nuniform float tail;\r\nuniform float count;\r\nuniform float taperLength;\r\nuniform float tailKey;\r\nuniform float currentKey;\r\nuniform bool wrapKeys;\r\nvarying vec3 vColor;\r\n\r\n// Branch-avoiding comparison - http://theorangeduck.com/page/avoiding-shader-conditionals\r\nfloat when_lt(float a, float b) {// a < b = PASS\r\n  return max(sign(b - a), 0.0);\r\n}\r\nfloat when_gt(float a, float b) {// a > b = PASS\r\n  return max(sign(a - b), 0.0);\r\n}\r\nfloat when_ge(float x, float y) {\r\n  return 1.0 - when_lt(x, y);\r\n}\r\nfloat or(float a, float b) {// a OR b = PASS\r\n  return min(a + b, 1.0);\r\n}\r\n\r\nvoid main() {\r\n\tfloat id = vertexID;\r\n\tfloat evenOdd = mod(id,2.0) * 2.0 - 1.0;// makes -1 for even vertex id\'s and +1 for odd vertex id\'s\r\n\tid /= 2.0;// combine the two vertices per spine point into one id, from here on\r\n\t\r\n\tfloat relativeId = float(wrapKeys) * mod(id - tailKey, count);\t\t// this is for "fullorbit" type ephemerides. Any linear ephemerides will never use this\r\n\trelativeId += float(!wrapKeys) * (id - tailKey);\t\t\t\t\t// i.e. vertex id = 0 for first, and "tail" for last\r\n\t\r\n\tfloat range = float(wrapKeys) * tail + float(!wrapKeys) * min(tail, currentKey);// ensure correct range is set depending on wrapped or not\r\n//\trelativeId = tail - relativeId;// reverse starting at [0 - tail]\r\n//\trelativeId = min(tail, currentKey) - relativeId;// reverse starting at [0 - tail]\r\n\trelativeId = range - relativeId;\r\n\r\n\tfloat taperEnd = taperLength / 4.0;\r\n\tfloat longTaper = 1.0 - 0.5*log((relativeId + 5.0) / (taperEnd / exp(1.0)));\t\t\t\t\r\n\tfloat headTaper = log(relativeId * 50.0 + 1.0) * 0.15;\r\n\t\r\n\tvColor = float(wrapKeys) * ribbonColor * or(when_lt(id, currentKey), when_ge(id, tailKey));// For a circular orbit, we should display from zero to // branch avoiding use of bool\r\n\tvColor += float(!wrapKeys) * ribbonColor * when_ge(id, tailKey) * when_lt(id, currentKey);// For a regular linear ephemeris, we should only display from current to tail// branch avoiding use of bool\r\n\tvColor *= (0.25 + 10.0 /  (relativeId + 2.0));// highlight at head, then fade color toward tail; (bias + amount / (id + inv.highlight))\r\n\tvColor *= when_gt(relativeId, 0.0);\t\t// fade to black for head vertex (object end)\r\n\tvColor *= when_lt(relativeId, tail);\t// fade to black for tail vertex\r\n\t\r\n\tvec4 worldPosition = modelMatrix * vec4(position, 1.0
1);\r\n\tvec3 viewVector = cameraPosition - worldPosition.xyz;\r\n\tvec3 normalCross = normalize(cross(viewVector, evenOdd * direction));\r\n\r\n\tfloat cameraRibbonScaling = length(viewVector);// same size ribbon in clipspace no matter how far from camera\r\n\tvec3 newPos = position + headTaper * longTaper * normalCross * ribbonWidth / 2.0 * cameraRibbonScaling;\r\n\t\r\n\tgl_Position = when_gt(relativeId, 0.0) * projectionMatrix * modelViewMatrix * vec4(newPos,1.0);\r\n\tgl_Position += float(relativeId == 0.0) * projectionMatrix * viewMatrix * vec4(objectPosition,1.0);// always have head follow the object precisely\r\n}',fragmentShader:"uniform vec3 ribbonColor;\r\nvarying vec3 vColor;\r\n\r\nvoid main() {\r\n\tif (vColor.rgb == vec3(0.0,0.0,0.0)) discard; \r\n\tgl_FragColor = vec4(vColor.rgb,0.5);\r\n}",side:i.DoubleSide,blending:i.AdditiveBlending}),this.frustumCulled=!1,this.start=function(){r.canvas.addEventListener("zoom-level",(function(e){p=e.detail})),r.canvas.addEventListener("renderer-resize",(function(e){var t=e.detail.viewport.max.x;t>1111?(o=1/(t/1111),o=Math.clamp(o,.5,1)):o=1,f()}))},this.setOffset=function(e){u.copy(e),this.position.copy(u)},this.updateKeys=function(e,a){this.material.uniforms.objectPosition.value.copy(a),f();var r=Math.trunc(e-d);e*=2,(r*=2)<0&&t.fullOrbit?(r+=this.positionAttribute.count,this.material.uniforms.wrapKeys.value=!0,this.material.uniforms.tailKey.value=r/2,this.material.uniforms.currentKey.value=e/2):(r=Math.max(r,0),this.material.uniforms.wrapKeys.value=!1,this.material.uniforms.tailKey.value=r/2,this.material.uniforms.currentKey.value=e/2)}}V.prototype=Object.create(i.Mesh.prototype),V.prototype.constructor=V;var N=a(8535).Helpers;function k(e){var t,a;i.Line.call(this);var r=e.elements,n=e.rates;if(r&&n){var o=(Date.now()-Date.UTC(2e3,0,1,12,0,0))/315576e7,s=(r.semiMajor+n.semiMajor*o)*N.AstronomicalUnit/N.LocalScale,l=r.eccentricity+n.eccentricity*o,c=r.inclination+n.inclination*o,d=r.longPeri+n.longPeri*o,u=r.longNode+n.longNode*o,h=e.name,p=null!==(t=null===(a=e.orbit)||void 0===a?void 0:a.periphelion)&&void 0!==t?t:s,m=new i.Color(e.trace.color),f=s*Math.sqrt(1-l*l),g=new i.Vector2(0,-(s-p)),y=(new i.Vector2(0,s-p),new i.EllipseCurve(g.x,g.y,f,s).getPoints(N.mobileAndTablet?100:1e4));this.geometry=(new i.Geometry).setFromPoints(y),this.material=new i.LineBasicMaterial({color:m.offsetHSL(0,0,.5),opacity:.4,transparent:!0}),this.material=new i.LineBasicMaterial({color:new i.Color("#e5e1bf"),opacity:.25,transparent:!0}),this.visible=!1,this.name="Orbit of "+h,this.rotateX(Math.degToRad(-90)),this.rotateX(Math.degToRad(S3D.Ecliptic)),this.rotateZ(Math.degToRad(u)),this.rotateX(Math.degToRad(c));var b=d-u;if(this.rotateZ(Math.degToRad(b)),this.rotateZ(Math.degToRad(-90)),this.updateMatrix(),this.matrixAutoUpdate=!1,this.setOffset=function(e){this.position.copy(e),this.updateMatrix()},window.rendererDebugger){var w=rendererDebugger.addSlimArrow(null,new i.Vector3(0,1,0),!0,p,new i.Color("#e5e1bf"));w.name="".concat(this.name," arrow"),w.line.material.opacity=.5,w.line.material.transparent=!0,w.cone.material.opacity=.5,w.cone.material.transparent=!0,w.rotateX(Math.degToRad(-90)),w.rotateX(Math.degToRad(S3D.Ecliptic)),w.rotateZ(Math.degToRad(u)),w.rotateX(Math.degToRad(c)),w.rotateZ(Math.degToRad(b)),w.rotateZ(Math.degToRad(-90))}}}k.prototype=Object.create(i.Line.prototype),k.prototype.constructor=k;var L=a(1741),z=a(8535).Helpers,F=a(4499);function U(e,t,a,r){F.Group.call(this,{texture:{value:(new i.TextureLoader).load(z.texUrlPrefix+"smokeparticle.png")},hasPerspective:!1,maxParticleCount:1e5,depthTest:!1}),this.sun=a,this.dataSnapshot=t;var n=this,o=new i.Clock,s=107e3*OneMile*1e3/750,c=s/65e3,d=new F.Emitter({maxAge:{value:.5},position:{distribution:F.distributions.DISC,radius:.01/z.LocalScale},color:{value:[new i.Color("#5d8be0").addScalar(.2),new i.Color("#5d8be0").addScalar(-.3)]},size:{value:[5,10]},opacity:{value:.4},particleCount:50}),u=new F.Emitter({maxAge:{value:c},position:{distribution:F.distributions.DISC,radius:50/z.LocalScale},acceleration:{spread:new i.Vector3(5e-6,0,5e-6).multiplyScalar(7.5),type:F.distributions.BOX},color:{value:r},size:{value:[5,10]},opacity:{value:.1},particleCount:Math.floor(3333)});this.emitter1=d,this.emitter2=u,this.addEmitter(d),this.addEmitter(u);var h=new i.Vector3,p=l().throttle((function(t){h.copy(e.positionDelta).normalize()}),500);this.update=function(t){var a=e.distanceToCamera,r=z.getRenderer().sun;r&&(d.velocity.value.subVectors(e.position,r.position),d.velocity.value=d.velocity.value.setLength(65/z.LocalScale).multiplyScalar(10),p(t),d.acceleration.value=d.acceleration.value.copy(h).negate().multiplyScalar(1e-4),u.velocity.value=u.velocity.value.copy(d.velocity.value),u.acceleration.value=u.acceleration.value.copy(d.acceleration.value)),n.tick(o.getDelta()),n.mesh.scale.setScalar(100*a),n.mesh.position.copy(e.position)},this.mesh.material.side=i.DoubleSide,this.mesh.material.name="SPE Comet",this.mesh.name="SPE Comet",this.mesh.frustumCulled=!1,this.mesh.renderOrder=1e3}U.prototype=Object.create(F.Group.prototype),U.prototype.constructor=U;const G=U;var H=a(8535).Helpers;function J(){var e,t=this,a=this,r=(new i.Euler,new i.Matrix4),n=new i.Vector3,o=new i.Vector3,s=new i.Vector3,c=new i.Quaternion,d=new i.Vector3(1,0,0),u=new i.Vector3(0,0,1),h=!1;this.parent,this.orbitChildren=[],this.ephemerisChildren=[],this.orbitingPlaneNormal,this.object,this.orbit,this.trace,this.halo,this.label,this.isPriority=!1,this.data,this.objectData,this.name,this.traverse=function(e){var t;for(e(this),t=0;t<this.orbitChildren.length;t++)e(this.orbitChildren[t]);for(t=0;t<this.ephemerisChildren.length;t++)e(this.ephemerisChildren[t])};var p=new i.Box3;this.getObjectData=function(){return this.objectData},this.orbitingGroup,this.appendChild=function(e){if(null==this.orbitingGroup)if(this.orbitingGroup=new i.Group,this.orbitingGroup.name="Orbiting Group "+this.name,this.object.parent.add(this.orbitingGroup),"Ecliptic"===e.objectData.Ref);else if("Laplace"===e.objectData.Ref){var t=this.object.getWorldY().normalize(),r=(new i.Quaternion).setFromUnitVectors(new i.Vector3(0,1,0),t);this.orbitingGroup.quaternion.copy(r),this.objectData.orbNodeRot&&this.orbitingGroup.rotateY(this.objectData.orbNodeRot)}e.objectData.elements?function(e){a.orbitChildren.push(e)}(e):function(e){a.ephemerisChildren.push(e)}(e),this.orbitingGroup.add(e.object),e.trace&&this.orbitingGroup.add(e.trace),e.parent=a},this.posScaleGroup,this.appendPosScaleChild=function(e){null==this.posScaleGroup&&(this.posScaleGroup=new i.Group,this.posScaleGroup.name="PosScale Group "+this.name,this.object.parent.add(this.posScaleGroup)),this.posScaleGroup.add(e)};var f,g=new i.Group,y=new i.Group,w=new i.Group,v=new i.Group,M=new i.Group,D=new i.Group,T=new i.Group;this.appendLatLngChild=function(e,t){var r=90-e.lat,n=e.lng;n+=90;var o=new i.Spherical(1,Math.degToRad(r),Math.degToRad(n)),s=this.object.findLocCartesian(e),l=new i.Group;l.name="Lat "+e.lat+" Lng "+e.lng;var c=this.object.findGeocentricRadius(e.lat),d=(c+t/1e3/H.LocalScale)/c;l.position.copy(s.clone().multiplyScalar(d)),this.object.add(l),l.lookAt(this.object.worldPosition),l.rotateX(Math.degToRad(-90)),window.rendererDebugger&&rendererDebugger.addAxis(l,!0,150);var u=a.objectData.siderealDay;u/=360,u=1/(u/=1e3),u=Math.degToRad(u);var h=!0,p=[],m=new i.Vector3,b=new i.Vector3,S=H.getRenderer().getObjectByName("Sol");return null==S?(console.log("Sol not found"),S=H.getRenderer().sun):S=S.object,window.cancelAnimationFrame(f),f=requestAnimationFrame((function e(){var t=S.worldPosition.clone();a.object.worldToLocal(t);var r=(new i.Spherical).setFromVector3(t),n=o.theta-.5*Math.PI,l=r.theta-.5*Math.PI;(r=(new i.Spherical).setFromVector3(t)).phi-=Math.degToRad(90),r.radius=1;var c=t.angleTo(s)<=Math.degToRad(90),d=t.clone().cross(s).y<0,A=S3D.intersectPlanes(a.object.up,s.y,t,0);
1h&&a.object.children.forEach((function(e){"LODLevel"in e&&e.material.side!==i.DoubleSide&&(e.material.side=i.DoubleSide,console.log(e.name+" material changed to DoubleSide"))}));var P=(new i.Vector3).copy(A[0]),j=(new i.Vector3).copy(A[1]);a.object.localToWorld(P),a.object.localToWorld(j);var O=(new i.Vector3).subVectors(j,P),x=new i.Raycaster(P,O.normalize()),R=x.intersectObjects(a.object.children,!0);p=[];for(var E=0;E<R.length;E++){var C=R[E],I=C.object,B=C.point.clone();a.object.worldToLocal(B),"LODLevel"in I&&p.push(B)}m=p[0],b=p[1];var V=s.clone(),N=m.clone().cross(t).y>=0;N===b.clone().cross(t).y>=0&&console.log("Both sunpoints can't be the same sign of cross product!");m.signedAngleTo(t,a.object.up),b.signedAngleTo(t,a.object.up);m.projectOnPlane(a.object.up),b.projectOnPlane(a.object.up),V.projectOnPlane(a.object.up);var k=N?m:b,L=N?b:m,z=V.signedAngleTo(k,a.object.up),F=V.signedAngleTo(L,a.object.up),U=Math.abs(z)+Math.abs(F),G=k.clone().applyAxisAngle(a.object.up,Math.degToRad(-6)),J=L.clone().applyAxisAngle(a.object.up,Math.degToRad(6)),W=k.clone().applyAxisAngle(a.object.up,Math.degToRad(-18)),q=L.clone().applyAxisAngle(a.object.up,Math.degToRad(18)),_=V.signedAngleTo(W,a.object.up),K=V.signedAngleTo(G,a.object.up),Y=V.signedAngleTo(J,a.object.up),X=V.signedAngleTo(q,a.object.up);window.rendererDebugger&&(y.parent=null,y.visible=!1,y.children.length&&y.children[0].material.dispose(),y.children.length&&y.children[1].material.dispose(),y.children.length&&y.children[0].geometry.dispose(),y.children.length&&y.children[1].geometry.dispose(),y=rendererDebugger.addArrow(a.object,W,!0,3,"darkslategray"),w.parent=null,w.visible=!1,w.children.length&&w.children[0].material.dispose(),w.children.length&&w.children[1].material.dispose(),w.children.length&&w.children[0].geometry.dispose(),w.children.length&&w.children[1].geometry.dispose(),w=rendererDebugger.addArrow(a.object,G,!0,3,"grey"),v.parent=null,v.visible=!1,v.children.length&&v.children[0].material.dispose(),v.children.length&&v.children[1].material.dispose(),v.children.length&&v.children[0].geometry.dispose(),v.children.length&&v.children[1].geometry.dispose(),v=rendererDebugger.addArrow(a.object,k,!0,3,"orange"),M.parent=null,M.visible=!1,M.children.length&&M.children[0].material.dispose(),M.children.length&&M.children[1].material.dispose(),M.children.length&&M.children[0].geometry.dispose(),M.children.length&&M.children[1].geometry.dispose(),M=rendererDebugger.addArrow(a.object,L,!0,3,"red"),D.parent=null,D.visible=!1,D.children.length&&D.children[0].material.dispose(),D.children.length&&D.children[1].material.dispose(),D.children.length&&D.children[0].geometry.dispose(),D.children.length&&D.children[1].geometry.dispose(),D=rendererDebugger.addArrow(a.object,J,!0,3,"grey"),T.parent=null,T.visible=!1,T.children.length&&T.children[0].material.dispose(),T.children.length&&T.children[1].material.dispose(),T.children.length&&T.children[0].geometry.dispose(),T.children.length&&T.children[1].geometry.dispose(),T=rendererDebugger.addArrow(a.object,q,!0,3,"darkslategray"),g.parent=null,g.visible=!1,g.children.length&&g.children[0].material.dispose(),g.children.length&&g.children[1].material.dispose(),g.children.length&&g.children[0].geometry.dispose(),g.children.length&&g.children[1].geometry.dispose(),g=rendererDebugger.addArrow(a.object,V,!0,3,"green"));k.cross(V).y,L.cross(V).y;var Z=z,Q=F,$=.833;z-=Math.degToRad($),F+=Math.degToRad($);var ee,te=1013.25/288*(.1594+.0196*(ee=0)+2e-5*ee*ee)/(1+.505*ee+.845*ee*ee);z-=Math.degToRad(te),F+=Math.degToRad(te),window.rendererDebugger&&rendererDebugger.debugTop2("angleAstroDawn "+Math.round(i.Math.radToDeg(_))+"</br>angleCivilDawn "+Math.round(i.Math.radToDeg(K))+"</br>angleSunRise "+Math.round(10*i.Math.radToDeg(z))/10+" pre-correction "+Math.round(10*i.Math.radToDeg(Z))/10+"</br>angleSunSet "+Math.round(10*i.Math.radToDeg(F))/10+" pre-correction "+Math.round(10*i.Math.radToDeg(Q))/10+"</br>angleCivilDusk "+Math.round(i.Math.radToDeg(Y))+"</br>angleAstroDusk "+Math.round(i.Math.radToDeg(X))+"</br>");var ae=z/u,re=F/u,ne=Math.abs(ae)+Math.abs(re),oe=new Date(H.getRenderer().smTime.getTime()+ae*OneSecond),ie=new Date(H.getRenderer().smTime.getTime()+re*OneSecond),se=" ___ ";se+=c?"Daytime ":"Nighttime ",se+=d?"AM ":"PM ";var le="";le+="  ____  ",le+=Math.round(10*i.Math.radToDeg(z))/10+"°",le+=" / ",le+=Math.round(10*i.Math.radToDeg(F))/10+"°",le+=" ("+Math.round(i.Math.radToDeg(U))+"°)",le+="  ____  ",le+=H.formatDate(oe,H.dateFormat.hhmm),le+=" / ",le+=H.formatDate(ie,H.dateFormat.hhmm),le+="  ____  ",le+=Math.round(ae/60)+"min",le+=" / ",le+=Math.round(re/60)+"min",le+="  ____  ",window.rendererDebugger&&rendererDebugger.debugTop(" objLng "+Math.round(10*n)/10+" sunLng "+Math.round(10*l)/10+se+le+" length of day "+Math.round(ne/3600*10)/10+" hr  refr 0:0"+Math.round(Math.degToRad(te)/u/60)+" ("+Math.round(60*te)+"') disc "+Math.round(8.33)/10+" "),h=!1,f=requestAnimationFrame(e)})),l},this.orbitPathFollowGroup,this.appendOrbitPathFollowChild=function(e){var t=this;null==this.orbitPathFollowGroup&&(this.orbitPathFollowGroup=new i.Group,this.orbitPathFollowGroup.name="OrbitPathFollow Group "+this.name,this.object.parent.add(this.orbitPathFollowGroup),this.orbitPathFollowGroup.position.copy(this.object.position),window.rendererDebugger&&rendererDebugger.addPolarGrid(this.orbitPathFollowGroup,!1),window.rendererDebugger&&rendererDebugger.addAxis(this.orbitPathFollowGroup,!1,.5),window.rendererDebugger&&rendererDebugger.addXArrow(this.orbitPathFollowGroup,!1,.5),requestAnimationFrame((function(){requestAnimationFrame((function(){t.orbitPathFollowGroup.attach(e)}))}))),this.orbitPathFollowGroup.attach(e)},this.removeOrbitPathFollowChild=function(e){null!=this.orbitPathFollowGroup&&(this.orbitPathFollowGroup.remove(e),this.orbitPathFollowGroup.parent.remove(this.orbitPathFollowGroup),this.orbitPathFollowGroup=null)},this.setEphemerisReference=function(e){this.ephemeris=e},this.setEphemerisContainer=function(t){e=t},this.create=function(){if(!this.ephemeris&&!e)throw"No ephemeris found";this.ephemeris?(this.data=this.ephemeris.data,this.objectData=this.ephemeris.objectData,this.realTimeCompute=this.objectData.realTimeCompute,this.name=this.ephemeris.name):e&&(this.objectData=e.objectData,this.name=this.objectData.name);try{var t=this.objectData.body;if(t==S3D.BodyType.DLOD){if(this.object=new m(this.objectData),this.objectData.atm){this.objectData.atm,H.LocalScale,this.object.radius,this.object.radius;new i.Color("white").lerp(new i.Color(this.objectData.color),.5)}P()}else t===S3D.BodyType.SPHERE?("Sun"===this.name?this.object=new L.T(H.getRenderer(),this.objectData):this.object=new SpaceBody(renderController,obj,renderController.container,obj.name!==simulation.observer,debug),P()):t===S3D.BodyType.OBJ?(this.object=new b(this.objectData),P()):t===S3D.BodyType.FBX?(this.object=new S(this.objectData),P()):(this.object=new A(this.objectData),P())}catch(e){H.catch(e,"SOco")}};var P=function(){if(t.object.objectData=t.objectData,t.ephemeris)try{t.objectData.trace&&(t.trace=new V(t.ephemeris,t.objectData))}catch(e){H.catch(e,"SOcte")}else if(e&&t.objectData.trace){t.objectData.JITkepler&&console.warn("Note that traces aren't yet supported for JITkepler objects");var a=t.getEphemerisDateRange();t.getPositions(a,null,function(e){try{var t={positionsView:e,data:{positionHighPAb:e.buffer}};this.trace=new V(t,this.objectData)}catch(e){H.catch(e,"SOctec")}}.bind(t))}try{t.objectData.astrBody===S3D.AstronomicalBody.PLANET&&(t.orbitCircle=new k(t.objectData))}catch(e){H.catch(e,"SOorb")}try{t.objectData.astrBody===S3D.AstronomicalBody.COMET&&(t.cometTail=new G(t.object,t.rendererSnapshot,new i.Object3D,new i.Color(t.objectData.cometTailColor)))}catch(e){H.catch(e,"SOctt")}};this.setPositionOffset=function(e){this.hasParent||(this.object.setOffset(e),this.trace&&this.trace.setOffset(e),this.orbitCircle&&this.orbitCircle.setOffset(e))},this.getPositionFor=function(t){if(e)return o.copy(e.getPositionFor(t)),o.multiplyScalar(S3D.MToLocal);if(!this.rendererSnapshot)return new i.Vector3;var a=new i.Vector3;this.parent&&a.copy(this.parent.rendererSnapshot.getPositionFor(t));var r=this.rendererSnapshot.getPositionFor(t);return a.add(r)},this.getVelocityFor=function(t){if(e)return s.copy(e.getVelocityFor(t)),s.multiplyScalar(3600*S3D.MToLocal);throw new Error("Not meant to happen :(")}
1,this.getSunSpeedFor=function(t){if(e)return e.getSunSpeedFor(t)*S3D.MToLocal;throw new Error("Not meant to happen :(")},this.getEphemerisDateRange=function(t){if(e)return e.getDateRange();throw new Error("Not meant to happen :(")},this.getPositions=function(t,a,r){if(e)return e.getPositions(t,a,r);throw new Error("Not meant to happen :(")},this.getDirectionAt=function(e){return this.rendererSnapshot.getDirectionAt(e)},this.realTimeCompute=!1;var j=l().throttle((function(t){e.checkCompute(t)}),1e4);this.update=function(t){var a,i,s,l=new Date(t);if(e&&j(t),this.ephemeris&&this.rendererSnapshot.updatePosition(t),e&&n.copy(e.getPositionFor(t)).multiplyScalar(S3D.MToLocal),this.parent&&this.object.setOffset({x:0,y:0,z:0}),h||(e?this.object.move(n):this.realTimeCompute?this.object.move(computePosition2(this.objectData,l,!0)):this.object.move(this.rendererSnapshot.position)),this.object.update(),null!=this.orbitingGroup&&(this.orbitingGroup.position.copy(this.object.position),this.orbitingGroup.matrixWorld.setPosition(this.object.position)),null!=this.posScaleGroup&&(this.posScaleGroup.position.copy(this.object.position),this.posScaleGroup.scale.copy(this.object.scale)),null!=this.orbitPathFollowGroup){if(this.orbitPathFollowGroup.position.copy(this.object.position),this.orbitPathFollowGroup.parent.updateMatrixWorld(),this.orbitPathFollowGroup.updateMatrixWorld(),e)var p=e.getVelocityFor(l);else p=this.rendererSnapshot.speedVector.clone().normalize();a=this.orbitPathFollowGroup,i=p,r.getInverse(a.matrixWorld),n.copy(i).transformDirection(r),c.setFromUnitVectors(d,n),a.quaternion.multiply(c),function(e,t){if(!t)throw new Error("uprightRotationWithVector called with undefined vector ");r.getInverse(e.matrixWorld),n.copy(t).transformDirection(r),o.crossVectors(d,n),c.setFromUnitVectors(u,o),e.quaternion.multiply(c)}(this.orbitPathFollowGroup,this.orbitingPlaneNormal)}for(this.unScaledChildren.scale.set(1/this.object.scale.x,1/this.object.scale.y,1/this.object.scale.z),s=0;s<this.orbitChildren.length;s++)this.orbitChildren[s].update(l);for(s=0;s<this.ephemerisChildren.length;s++)this.ephemerisChildren[s].update(l);if(h||(this.trace&&(e||this.trace.updateKeys(this.rendererSnapshot.keyCurrentIteration,this.object.worldPosition),this.trace.visible=this.object.visible&&this.traceVisible),this.cometTail&&this.cometTail.update(l),this.orbitCircle&&(this.orbitCircle.visible=this.object.visible&&this.traceVisible)),!this.object.worldPosition)throw new Error("WorldPosition not defined")},this.lateUpdate=function(e){},this.lazyUpdate=function(){e&&(this.orbitingPlaneNormal||(this.orbitingPlaneNormal=e.getOrbitNormal()))}.bind(this),this.updateRotation=function(e,t,a){this.ephemeris?this.object.orient(1!=this.objectData.realTime?e:t,t,a):this.object.orient(e,t,a)},this.updateForCamera=function(e,t,a){this.object.sizing(e,t,a)},this.start=function(){this.object.start(),this.trace&&this.trace.start(),this.ephemeris&&null==this.rendererSnapshot&&(this.rendererSnapshot=this.ephemeris.createSnapshot()),this.cometTail&&this.rendererSnapshot&&(this.cometTail.dataSnapshot=this.rendererSnapshot),this.ephemeris&&(this.orbitingPlaneNormal=function(){if(!a.data)return void console.log("Can't calculate Orbiting Plane Normal");var e=a.data.dates[0],t=a.data.dates[a.data.dates.length>>2];a.rendererSnapshot.updatePosition(e);var r=a.rendererSnapshot.speedVector.clone();a.rendererSnapshot.updatePosition(t);var n=a.rendererSnapshot.speedVector.clone();return r.cross(n).normalize()}()),this.objectData.elements&&(this.orbitingPlaneNormal=this.calculateOrbitingPlaneNormalFromElements()),this.unScaledChildren=new i.Group,this.object.add(this.unScaledChildren)},this.calculateOrbitingPlaneNormalFromElements=function(){var e=this.objectData.elements,t=(new i.Group).rotateX(Math.degToRad(S3D.Ecliptic)).rotateY(Math.degToRad(e.longNode)).rotateX(Math.degToRad(e.inclination)).rotateY(Math.degToRad(e.argPeri));t.updateMatrix(),t.updateMatrixWorld();var a=t.up.clone();return t.localToWorld(a),a},this.reset=function(){this.object.reset(),e&&e.reset(),H.debug},this.createSnapshot=function(){return this.ephemeris?this.ephemeris.createSnapshot():(console.log("No ephemeris for createSnapshot"),null)},Object.defineProperties(this,{compoundBox:{enumerable:!0,get:function(){return p.makeEmpty(),a.traverse((function(e){var t=(new i.Box3).setFromObject(e.object);p.union(t)})),p}},firstDate:{enumerable:!0,get:function(){return e?e.firstDate:new Date(this.data.dates[0])}},lastDate:{enumerable:!0,get:function(){return e?e.lastDate:new Date(this.data.dates[this.data.dates.length-1])}}}),document.addEventListener("setting-update",(function(e){var t=e.detail;"sizesCompareSwitch"===t.id&&(h=t.value)}))}Object.defineProperties(J,{spaceObjects:{enumerable:!0,value:[]}}),Object.defineProperties(J.prototype,{isParent:{enumerable:!0,get:function(){return!this.parent}},hasParent:{enumerable:!0,get:function(){return!!this.parent}},traceVisible:{enumerable:!0,writable:!0,value:!0}}),Object.assign(J.prototype,{isSpaceObject:!0});const W=J},8072:(e,t,a)=>{"use strict";a.d(t,{g:()=>s});a(2526),a(1817),a(2165),a(9554),a(6992),a(8309),a(7941),a(1539),a(8783),a(4747),a(3948);var r=a(8852);const n=function(e,t,a,r,n,o,i,s,l){this.semiMajor=e,this.eccentricity=t,this.inclination=a,this.meanLong=r,this.longPeri=n,this.longNode=o,this.epoch=i,this.meanAnomaly=s,this.meanMotion=l};var o=a(8535).Helpers;function i(e){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}
1var s=function(){var e,t,a={"Solar Orbiter":{diameter:3,siderealPeriod:365*OneDay},"Mars Express":{size:1.8,info:"ESA Mars Explorer",trace:{color:"yellow",tail:.25}},"OSIRIS REx":{size:3,info:"U.S. Spacecraft, Asteroid Sample Mission ",trace:{color:"red",tail:.25},siderealPeriod:438*OneDay},BepiColombo:{body:S3D.BodyType.FBX,diameter:2.4,geometry:{scale:.01683},sprite:{scale:6},info:"Mercury Orbiter, ESA & JAXA",trace:{color:"magenta",tail:1},textureFormat:".jpg"},ExoMars:{size:3.2,info:"Trace Gas Orbiter, ESA & Roscosmos",trace:{color:"green",tail:.5}},"Mars Reconnaissance Orbiter":{size:3,diameter:3,min:.03,realTime:!0,trace:{color:"red",tail:.25,relative:!0},info:"U.S. Spacecraft,  Exploration of Mars"},Juno:{size:20.1,info:"NASA Jupiter Orbiter",min:.03,v:6,label:[{label:"Speed",data:[{unit:"speed",from:"this",to:"Sun",system:"metric"}]},{label:"Distance to Jupiter",data:[{unit:"distance",from:"this",to:"Jupiter",system:"metric"}]},{label:"Speed to Jupiter",data:[{unit:"speed",from:"this",to:"Jupiter",system:"metric",dimension:"kmh"}]},{label:"Size",data:[{unit:"diameter",from:"this",system:"metric"}]},{label:"Distance to Earth",data:[{unit:"distance",from:"this",to:"Earth",system:"metric"}]}],O:"Jupiter"},"Voyager 1":{size:4,min:.05,info:"NASA Outer Solar System, heliosphere exploration",trace:{tail:1}},"Voyager 2":{size:4,min:.05,info:"NASA Outer Solar System, heliosphere exploration",trace:{tail:1}},"MarCO A":{size:.975,info:"NASA Mars flyby, nanospacecraft test"},"MarCO B":{size:.975,info:"NASA Mars flyby, nanospacecraft test"},Rosetta:{size:2.8,info:"NASA Comet Orbiter and Lander"},"Mars Odyssey":{size:2.6,info:"NASA Mars Orbiter, Geology and Radiation study"},"Hayabusa 2":{size:6,w:Math.degToRad(360/(7.627*OneHour*1e3)),info:"JAXA Spacecraft of Japan, Asteroid Explorer",trace:{color:"fuchsia",tail:.25},siderealPeriod:475*OneDay},Starman:{trace:{tail:.1,color:"#ec1c22"},siderealPeriod:557*OneDay,icon:"Starman-icon.png",size:4,w:360/(4.7589*OneMinute)*1e3*DegToRad,info:"Tesla Roadster, SpaceX"},"2000 WO107":{elements:new n(.9115175959878509,.7807037408009027,7.770283810493051,0,282.97036250659636,69.25179907026434,2459000.5,206.4502587343912,1.132547664490036),size:510,info:"Near Earth object,Aten asteroid"},"1998 OR2":{elements:new n(2.384435229133716,.5730838973536175,5.865879847513805,0,201.58167123367443,27.01550790530004,2459000.5,12.10138790876168,.2676860746671856),size:2060,w:Math.degToRad(360/14803.2),info:"Near Earth object,Amor asteroid"},"67P/Churyumov-Gerasimenko":{elements:new n(3.46473701803964,.6405847372930017,7.043698689343029,0,62.87446519343841,50.18000114437616,2455493.5,92.07346224536946,.152826497362082),size:4e3,w:Math.degToRad(360/45940.932)},Å teins:{elements:new n(2.363799463533961,.1460106035801363,9.9349030189678,0,306.3179171942762,55.36745725989282,2458600.5,290.8900859462597,.2711990283890925),size:5160,w:Math.degToRad(360/21776.4)},Lutetia:{elements:new n(2.434958096420116,.1633561118067609,3.064055490537624,0,330.7827223798856,80.86582891140033,2458600.5,344.2934959463254,.2593981271966501),size:95760,w:Math.degToRad(360/29395.8)},Ryugu:{size:865,w:Math.degToRad(360/(7.627*OneHour*1e3)),info:"Near Earth object,C-type asteroid",trace:{color:"#46c59c",tail:.25},siderealPeriod:475*OneDay},"2006 SF6":{elements:new n(.9493709738700178,.2804562977735924,5.865992689324749,0,533.7229617380829,228.058945767545,2458600.5,52.91859763434268,1.065491893224162),size:500,w:Math.degToRad(360/41461.2)},"2009 JF1":{elements:new n(1.892929710629831,.7381796819631565,6.149422855195774,0,326.9186951306967,45.56944212944954,2459000.5,73.24305792582437,.3784446257213951),size:13,w:Math.degToRad(25)},"2009 JF1 ESA":{elements:new n(1.892897,.738164,6.15,0,281.343+45.574,45.574,2458800.5,357.538,.3784543420066658),size:13,w:Math.degToRad(25)},Didymos:{elements:new n(1.644576707340323,.3836383357953901,3.407819057354463,0,392.5088292764842,73.20696104203657,2459000.5,311.5778279424352,.4673291502312379),size:780,info:"Apollo Asteroid",w:Math.degToRad(360/8133.48)},"2018 VP1 JIT":{elements:new n(1.587662049962158,.4298276543428504,3.241917193864924,0,354.9627302873109,39.81963507460298,2458600.5,103.5950397301828,.492682320223469),size:2,info:"Apollo Near-Earth, Impact Risk in 2020",w:Math.degToRad(25)},"2018 VP1":{elements:new n(1.587720805090822,.4299169855584612,3.24188597885521,0,354.9398067804098,39.81558937153621,2459000.5,300.7151180739548,.4926549722049647),size:2,info:"Apollo Near-Earth, Impact Risk in 2020",w:Math.degToRad(25)},"2018 VP1 May 31":{elements:new n(1.587720805090822,.4299169855584612,3.24188597885521,0,354.9398067804098,39.81558937153621,2459000.5,300.7151180739548,.4926549722049647),size:2,info:"Apollo Near-Earth, Impact Risk in 2020",w:Math.degToRad(25)},NEOWISE:{elements:new n(347.7550209917678,.9991528362376153,128.9378033283037,0,98.28978697929966,61.00783595303643,2458953.5,359.9877384133292,.0001519826316048971),size:10,min:.005,trace:{color:"#b60036"},cometTailColor:"#1d0008",info:"Comet 2020/F2 (NEOWISE)",astrBody:S3D.AstronomicalBody.COMET,commonName:"Comet NEOWISE"},"1P/Halley":{elements:new n(17.8341442925537,.967142908462304,162.262690579161,0,169.75256608108612,58.42008097656843,2449400.5,38.3842644764388,.01308656479244564),size:11e3,min:.005,trace:{color:"#b60036"},cometTailColor:"#1d0008",info:"Comet 1/PHalley",astrBody:S3D.AstronomicalBody.COMET,commonName:"Comet Halley"},Swan:{elements:new n(-450.1309457416841,1.000956094769503,110.8047507810363,0,328.19990633903296,260.0407756587517,2458956.5,-.004182887787263263,.0001032038187666795),size:10,
1cometTailColor:"#192B4C",info:"Comet Swan",astrBody:S3D.AstronomicalBody.COMET},"C/2019 Y4":{elements:new n(330.6077016659887,.9992352330367696,45.38387091906765,0,297.9804851735979,120.5720880573815,2458915.5,359.986060813443,.0001639587596515942),size:10,trace:{tail:.99},info:"Comet Atlas"},"C/2019 Q4":{elements:new n(-.8516388443116791,3.356191268153205,44.05262620283894,0,517.2735210934017,308.1489154698829,2459061.5,295.276576763394,1.254067407708324),size:1e4,info:"Comet Borisov, Interstellar visitor"},Oumuamua:{size:230,min:.025,w:Math.degToRad(360/29160),info:"'Oumuamua, Interstellar visitor"},"2000 QW7":{elements:new n(1.948763872889264,.468823562774129,4.151895532026104,0,349.5062139227036,158.5686232089274,2459000.5,94.28762745096249,.3622974222973939),diameter:370,info:"Amor Asteroid",w:Math.degToRad(360/256680)},"2014 MU69":{commonName:"Arrokoth",elements:new n(44.672455,.0504661737375633,2.449962465962479,0,340.1920924188409,158.9281,2458600.5,310.912884,.003305744670831641),rates:new n(0,0,0,0,0,0,0,0,0),diameter:45e3,info:"Kuiper belt object, Ultima Thule",w:Math.degToRad(25),trace:{color:"#46c59c",tail:.95}}
1,"2010 RF12":{elements:new n(1.060481638728617,.1882731827991578,.8829066097456757,0,431.42680110118545,163.8399391533499,2458600.5,260.9373831312538,.9025044326905713),rates:new n(0,0,0,0,0,0,0,0,0),diameter:7,info:"Apollo Asteroid, High risk Near-Earth",w:Math.degToRad(25)},"2018LA":{diameter:3.8,info:"Impacted Earth - Africa, Apollo near-Earth asteroid",w:Math.degToRad(60)},Apophis:{diameter:370,w:25*DegToRad,trace:{color:"#46c59c",tail:.25},info:"99942 (2004 MN4), near-Earth asteroid"},"Apophis Kepler RT":{elements:new n(.9224383019077086,.1911953048308701,3.331369520013644,0,330.84790844383076,204.4460289189818,2454733.5,180.429373045644,1.112495037603281),rates:new n(0,0,0,0,0,0,0,0,0),diameter:370,info:"99942 (2004 MN4), near-Earth asteroid",w:Math.degToRad(25)},"Apophis Kepler":{elements:new n(.9224383019077086,.1911953048308701,3.331369520013644,0,330.84790844383076,204.4460289189818,2454733.5,180.429373045644,1.112495037603281),rates:new n(0,0,0,0,0,0,0,0,0),diameter:370,info:"99942 (2004 MN4), near-Earth asteroid",w:Math.degToRad(25)},Ceres:{elements:new n(2.76916515450648,.07600902910070946,10.59406704424526,0,153.90322568423574,80.30553156826473,2458600.5,77.37209588584763,.213885225911375),rates:new n(0,0,0,0,0,0,0,0,0),ress:[32,512,2048,4096],radius:469730,info:"Dwarf planet, Asteroid",w:Math.degToRad(360/32667.012)},Haumea:{elements:new n(43.18194930213532,.1948913893954612,28.21353590229374,0,360.9426083923866,122.1627238657392,2459000.5,217.7719203138217,.003473367282488999),rates:new n(0,0,0,0,0,0,0,0,0),ress:[32,512,2048,4096],radius:78e4,info:",Dwarf planet, Plutoid",w:Math.degToRad(360/14095.44)},Makemake:{elements:new n(45.43021777051652,.161258963185402,28.98346739613914,0,374.4541172597983,79.61946353054466,2459000.5,165.512434189355,.003218747032353168),rates:new n(0,0,0,0,0,0,0,0,0),ress:[32,512,2048,4096],radius:727e3,info:"Dwarf planet, Kuiper belt object",w:Math.degToRad(360/80928)},Eris:{elements:new n(67.86447698644852,.4360526236027747,44.0393811827676,0,187.59124776467092,35.95078465671312,2459000.5,205.9854136328358,.001762951294993283),rates:new n(0,0,0,0,0,0,0,0,0),ress:[32,512,2048,4096],radius:1163e3,info:"Dwarf planet, Plutoid",w:Math.degToRad(360/93240)},"2007 OR10":{elements:new n(67.47051418678518,.5004814860780427,30.6568537182735,0,544.5201581038685,336.8538560791695,2459000.5,106.0196839227434,.00177841471873015),rates:new n(0,0,0,0,0,0,0,0,0),radius:615e3,commonName:"Gonggong",info:"Likely Dwarf planet",w:Math.degToRad(360/80640)},"(4) Vesta":{elements:new n(2.361417895877277,.08872145950956178,7.141770811873426,0,254.5393457141081,103.810804427096,2458600.5,95.86193620017683,.2716094015313151),rates:new n(0,0,0,0,0,0,0,0,0),radius:469700,info:"Kuiper belt object, Ultima Thule",w:Math.degToRad(360/32667.012)},"2006 QV89 (2006 observation)":{elements:new n(1.19198275264918,.2243536287347806,1.071143022064943,0,402.7821728557985,166.0592677281938,2458600.5,218.1969577580573,.7573543369711198),rates:new n(0,0,0,0,0,0,0,0,0),radius:.028/o.LocalScale*1e9,info:"Apollo Near-Earth, Asteroid"},"2006 QV89":{elements:new n(1.19206062085542,.2244169866004512,1.071408831026081,0,402.780479275156,166.0601193646395,2458600.5,217.8493388663359,.7572801299304851),rates:new n(0,0,0,0,0,0,0,0,0),radius:.028/o.LocalScale*1e9,info:"Apollo Near-Earth, 2019 Trajectory Update"},Bennu:{radius:246,info:"near-Earth asteroid, Carbonaceous Rock",trace:{color:"#46c59c",tail:.25},northPole:{RA:87,DEC:-65},w:Math.degToRad(360/(4.288*OneHour)*1e3),siderealDay:4.297*OneHour,siderealPeriod:438*OneDay},"Bennu JPL":{elements:new n(1.126391025934071,.2037451084785423,6.034939533607825,0,68.28393579025723,2.060867329373625,2455562.5,101.7039479473255,.8244613502889271),rates:new n(0,0,0,0,0,0,0,0,0),radius:246,info:"near-Earth asteroid, Carbonaceous Rock",northPole:{RA:87,DEC:-65},siderealDay:4.297*OneHour,siderealPeriod:438*OneDay},"1979 XB":{elements:new n(2.228139446564493,.7084572219505028,24.73433191482803,0,161.635291150591,86.05548731492976,2444221.5,346.3189367247112,.2963401680587308),rates:new n(0,0,0,0,0,0,0,0,0),diameter:700,info:"Apollo Asteroid, High risk Near-Earth",w:Math.degToRad(25)},"1979 XB ESA":{elements:new n(2.561484,.748026,25.383,0,160.481,81.969,2458800.5,264.724,360/1497.393),rates:new n(0,0,0,0,0,0,0,0,0),diameter:700,info:"Apollo Asteroid, High risk Near-Earth",w:Math.degToRad(25)},"1979 XB NEA":{elements:new n(2.2200431,.7072995,24.57496,0,161.47503,84.74575,2458666.5,333.59223,.29796274),rates:new n(0,0,0,0,0,0,0,0,0),radius:450,info:"Apollo Asteroid, High risk Near-Earth",w:Math.degToRad(25)},"1979 XB MPOnew":{elements:new n(2.2200258,.7073009,24.57496,0,161.47572000000002,84.74576,2458647,327.63262,.29796622),rates:new n(0,0,0,0,0,0,0,0,0),radius:450,info:"Apollo Asteroid, High risk Near-Earth",w:Math.degToRad(25)},"1979 XB MPOold":{elements:new n(2.2199764,.707309,24.57497,0,161.47784000000001,84.74573,2458601,313.92493,.29797617),rates:new n(0,0,0,0,0,0,0,0,0),radius:450,info:"Apollo Asteroid, High risk Near-Earth",w:Math.degToRad(25)},"2000SG344":{elements:new n(.9774617,.0669345,.11213,0,467.26501,191.96132,2458586.5,333.43155,1.01989264),rates:new n(0,0,0,0,0,0,0,0,0)},"(16) Psyche":{elements:new n(2.9238138,.1335685,3.09601,0,378.8687,150.04564,2458601,288.33591,.19714216),rates:new n(0,0,0,0,0,0,0,0,0),radius:112500,w:Math.degToRad(25),siderealDay:4.196*OneHour},Gault:{elements:new n(2.3051,.1936,22.811,0,266.828,183.56,2458600.5,289.35,.2816),rates:new n(0,0,0,0,0,0,0,0,0)},Moon:{elements:new n(384400/o.AstronomicalUnit,.0554,5.145,0,318.15+125.08,125.08,2451545,135.27,13.176358),O:"Earth",Ref:"Ecliptic",ress:[32,2048,4096],radius:1737100,astrBody:S3D.AstronomicalBody.MOON,northPole:{RA:266.86,DEC:65.64},primeMeridian:41.19526398,siderealDay:27.32166171*OneDay,defaultScene:!0,name:"Moon",label:!0,kepler:!0},MoonAstr:{elements:new n(384400/o.AstronomicalUnit,.0554,5.145,0,318.15+125.08,125.08,2451545,135.27,13.176358),O:"Earth",Ref:"Ecliptic",ress:[32,2048,4096],radius:1737100,astrBody:S3D.AstronomicalBody.MOON,northPole:{RA:266.86,DEC:65.64},primeMeridian:41.19526398,siderealDay:27.32166171*OneDay,name:"MoonAstr",label:!0,kepler:!0},MoonHelio:{elements:new n(384400/o.AstronomicalUnit,.0554,5.145,0,318.15+125.08,125.08,2451545,135.27,13.176358),Ref:"Ecliptic",ress:[32,2048,4096],radius:1737100,astrBody:S3D.AstronomicalBody.MISC,northPole:{RA:266.86,DEC:65.64},primeMeridian:41.19526398,siderealDay:27.32166171*OneDay,name:"MoonHelio",JITkepler:!0,label:!0},MoonHelioEcl:{elements:new n(384400/o.AstronomicalUnit,.0554,5.145,0,318.15+125.08,125.08,2451545,135.27,13.176358),Ref:"Ecliptic",ress:[32,2048,4096],radius:1737100,astrBody:S3D.AstronomicalBody.MISC,northPole:{RA:266.86,DEC:65.64},primeMeridian:41.19526398,siderealDay:27.32166171*OneDay,name:"MoonHelioEcl",JITkepler:!0,label:!0},MoonHelioEclLessEarth:{elements:new n(384400/o.AstronomicalUnit,.0554,5.145,0,318.15+125.08,125.08,2451545,135.27,13.176358),O:"Earth",Ref:"Ecliptic",ress:[32,2048,4096],radius:1737100,astrBody:S3D.AstronomicalBody.MOON,siderealDay:27.32166171*OneDay,name:"MoonHelioEclLessEarth",JITkepler:!0,label:!0},Deimos:{elements:new n(23458/o.AstronomicalUnit,2e-4,.93,0,260.729+24.525,24.525,2433282.5,325.329,285.161879),O:"Mars",Ref:"Laplace",diameter:15e3,astrBody:S3D.AstronomicalBody.MOON,body:S3D.BodyType.OBJ,siderealDay:1.26244*OneDay,defaultScene:!0,name:"Deimos",label:!0,kepler:!0},Phobos:{elements:new n(9376/o.AstronomicalUnit,.0151,1.075,0,357.841,207.784,2433282.5,91.059,1128.8447569),O:"Mars",Ref:"Laplace",diameter:27e3,astrBody:S3D.AstronomicalBody.MOON,body:S3D.BodyType.OBJ,siderealDay:.31891*OneDay,defaultScene:!0,name:"Phobos",label:!0,kepler:!0},Io:{elements:new n(421800/o.AstronomicalUnit,.0041,.036,0,128.106,43.977,2450464.5,342.021,203.4889583),O:"Jupiter",Ref:"Ecliptic",ress:[32,512,2048,4096],radius:1821600,astrBody:S3D.AstronomicalBody.MOON,defaultScene:!0,name:"Io",label:!0,kepler:!0},Europa:{elements:new n(671100/o.AstronomicalUnit,.0094,.466,0,308.076,219.106,2450464.5,171.016,101.3747242),O:"Jupiter",Ref:"Ecliptic",ress:[32,512,2048,4096],radius:1560800,astrBody:S3D.AstronomicalBody.MOON,defaultScene:!0,name:"Europa",label:!0,kepler:!0},Ganymede:{elements:new n(1070400/o.AstronomicalUnit,.0013,.177,0,255.969,63.552,2450464.5,317.54,50.3176072),O:"Jupiter",Ref:"Ecliptic",ress:[32,512,2048],radius:2634100,astrBody:S3D.AstronomicalBody.MOON,defaultScene:!0,name:"Ganymede",label:!0,kepler:!0},Callisto:{elements:new n(1882700/o.AstronomicalUnit,.0074,.192,0,351.491,298.848,2450464.5,181.408,21.5710728),O:"Jupiter",Ref:"Ecliptic",ress:[32,512,2048],radius:2410300,astrBody:S3D.AstronomicalBody.MOON,defaultScene:!0,name:"Callisto",label:!0,kepler:!0},Titan:{elements:new n(1221865/o.AstronomicalUnit,.0288,.306,0,208.592,28.06,2451545,163.31,22.5769756),pW:352.12,pNode:704.6,O:"Saturn",Ref:"Laplace",ress:[32,1024],radius:2574700,astrBody:S3D.AstronomicalBody.MOON,defaultScene:!0,name:"Titan",label:!0,kepler:!0},Dione:{elements:new n(377415/o.AstronomicalUnit,.0022,.028,0,574.73,290.415,2451545,322.232,131.5349307),pW:5.852,pNode:11.709,O:"Saturn",Ref:"Laplace",ress:[32,512],radius:564400,astrBody:S3D.AstronomicalBody.MOON,defaultScene:!0,name:"Dione",label:!0,kepler:!0},Enceladus:{elements:new n(238042/o.AstronomicalUnit,0,.003,0,342.583,342.507,2451545,199.686,262.7318978),O:"Saturn",Ref:"Laplace",ress:[32,1024,2048],radius:252100,astrBody:S3D.AstronomicalBody.MOON,defaultScene:!0,name:"Enceladus",label:!0,kepler:!0},Hyperion:{elements:new n(1500933/o.AstronomicalUnit,.0232,.615,0,567.025,263.847,2451545,86.342,16.9199503),pW:127.99,pNode:154.66,O:"Saturn",Ref:"Laplace",radiu
1s:135e3,astrBody:S3D.AstronomicalBody.MOON,defaultScene:!0,name:"Hyperion",label:!0,kepler:!0},Iapetus:{elements:new n(3560854/o.AstronomicalUnit,.0293,8.298,0,352.711,81.105,2451545,201.789,4.5379416),pW:1676.69,pNode:3438.73,O:"Saturn",Ref:"Laplace",ress:[32,512],radius:736e3,astrBody:S3D.AstronomicalBody.MOON,defaultScene:!0,name:"Iapetus",label:!0,kepler:!0},Mimas:{elements:new n(185539/o.AstronomicalUnit,.0196,1.574,0,505.526,173.027,2451545,14.848,381.9944948),pW:.493,pNode:.986,O:"Saturn",Ref:"Laplace",ress:[32,1024],radius:198200,astrBody:S3D.AstronomicalBody.MOON,defaultScene:!0,name:"Mimas",label:!0,kepler:!0},Rhea:{elements:new n(527068/o.AstronomicalUnit,2e-4,.333,0,592.661,351.042,2451545,179.781,79.6900459),pW:17.939,pNode:35.832,O:"Saturn",Ref:"Laplace",ress:[32,512],radius:763800,astrBody:S3D.AstronomicalBody.MOON,defaultScene:!0,name:"Rhea",label:!0,kepler:!0},Tethys:{elements:new n(294672/o.AstronomicalUnit,1e-4,1.091,0,305.044,259.842,2451545,243.367,190.6979109),pW:2.49,pNode:4.982,O:"Saturn",Ref:"Laplace",ress:[32,512],radius:531e3,astrBody:S3D.AstronomicalBody.MOON,defaultScene:!0,name:"Tethys",label:!0,kepler:!0},Mercury:{elements:new n(.38709927,.20563593,7.00497902,252.2503235,77.45779628,48.33076593,0,0,360/87.969),rates:new n(37e-8,1906e-8,-.00594749,149472.67411175,.16047689,-.12534081,0,0,0),ress:[32,256],radius:2439700,info:"Inner Solar System",trace:{color:"#797979",tail:0},astrBody:S3D.AstronomicalBody.PLANET,orbit:{periphelion:46},northPole:{RA:281.01,DEC:61.414},siderealDay:1407.6*OneHour,name:"Mercury",defaultScene:!0,JITkepler:!0}
1,Venus:{elements:new n(.72333566,.00677672,3.39467605,181.9790995,131.60246718,76.67984255,0,0,360/224.701),rates:new n(39e-7,-4107e-8,-7889e-7,58517.81538729,.00268329,-.27769418,0,0,0),ress:[32,256],radius:6051800,info:"Inner Solar System",atm:35e-5,trace:{color:"#c67228",tail:0},astrBody:S3D.AstronomicalBody.PLANET,orbit:{periphelion:107.48},northPole:{RA:272.76,DEC:67.16},siderealDay:-5832.6*OneHour,name:"Venus",defaultScene:!0,JITkepler:!0},Earth:{elements:new n(1.00000261,.01671123,-1531e-8,100.46457166,102.93768193,0,0,0,360/o.standards.DAYSPERSIDEREALYEAR),rates:new n(562e-8,-4392e-8,-.01294668,35999.37244981,.32327364,0,0,0,0),ress:[32,512,1024,2048,4096,8192],spec:!0,radius:6371e3,trace:{color:"#0077be",tail:0},astrBody:S3D.AstronomicalBody.PLANET,orbit:{periphelion:147.09},helpers:{orbitLines:!0},northPole:{RA:0,DEC:90},primeMeridian:280.46061837504,synodicDay:24*OneHour,siderealDay:23.934471917691763*OneHour,semiMajor:6378137,flattening:1/298.257223563,icon:"Earth-icon.png",name:"Earth",defaultScene:!0,JITkepler:!0},"Earth JITastronomy":{elements:new n(1.00000261,.01671123,-1531e-8,100.46457166,102.93768193,0,0,0,360/o.standards.DAYSPERSIDEREALYEAR),rates:new n(562e-8,-4392e-8,-.01294668,35999.37244981,.32327364,0,0,0,0),ress:[32,512,1024,2048,4096,8192],spec:!0,radius:6371e3,trace:{color:"#0077be",tail:0},astrBody:S3D.AstronomicalBody.PLANET,orbit:{periphelion:147.09},helpers:{orbitLines:!0},northPole:{RA:0,DEC:90},primeMeridian:280.46061837504,synodicDay:24*OneHour,siderealDay:23.934471917691763*OneHour,semiMajor:6378137,flattening:1/298.257223563,icon:"Earth-icon.png",name:"Earth JITastronomy",JITastronomy:!0},"Earth JIT":{elements:new n(1.00000261,.01671123,-1531e-8,100.46457166,102.93768193,0,0,0,360/o.standards.DAYSPERsiderealDayYEAR),rates:new n(562e-8,-4392e-8,-.01294668,35999.37244981,.32327364,0,0,0,0),ress:[32,512,1024,2048,4096,8192],spec:!0,radius:6371e3,trace:{color:"#0077be",tail:0},astrBody:S3D.AstronomicalBody.PLANET,orbit:{periphelion:147.09},helpers:{orbitLines:!0},northPole:{RA:0,DEC:90},primeMeridian:280.46061837504,siderealDay:23.934471917691763*OneHour,semiMajor:6378137,flattening:1/298.257223563,icon:"Earth-icon.png"},Mars:{elements:new n(1.52371034,.0933941,1.84969142,-4.55343205,-23.94362959,49.55953891,0,0,360/686.98),rates:new n(1847e-8,7882e-8,-.00813131,19140.30268499,.44441088,-.29257343,0,0,0),ress:[32,512,1024,2048,8192],radius:339e4,atm:200*1e-6,trace:{color:"#c1440e",tail:0},astrBody:S3D.AstronomicalBody.PLANET,orbit:{periphelion:206.62},helpers:{orbitLines:!0},northPole:{RA:317.681,DEC:52.887},primeMeridian:176.901,siderealDay:24.6229*OneHour,orbNodeRot:Math.degToRad(-120),name:"Mars",defaultScene:!0,JITkepler:!0},Jupiter:{elements:new n(5.202887,.04838624,1.30439695,34.39644051,14.72847983,100.47390909,0,0,360/4332.589),rates:new n(-11607e-8,-13253e-8,-.00183714,3034.74612775,.21252668,.20469106,0,0,0),ress:[32,512,2048],radius:69911e3,info:"Outer Solar System, Giant Planet",atm:.0139822,trace:{color:"#827767",tail:0},astrBody:S3D.AstronomicalBody.PLANET,orbit:{periphelion:740.52},northPole:{RA:268.057,DEC:64.495},siderealDay:9.925*OneHour,icon:"Jupiter-icon.png",name:"Jupiter",defaultScene:!0,JITkepler:!0},Saturn:{elements:new n(9.53667594,.05386179,2.48599187,49.95424423,92.59887831,113.66242448,0,0,360/10759.22),rates:new n(-.0012506,-50991e-8,.00193609,1222.49362201,-.41897216,-.28867794,0,0,0),ress:[1024,512,32],radius:58232e3,info:"Outer Solar System, Giant Planet",atm:.058232*.1,trace:{color:"#aa9682",tail:0},astrBody:S3D.AstronomicalBody.PLANET,orbit:{periphelion:1352.55},northPole:{RA:40.589,DEC:83.537},siderealDay:10.65*OneHour,orbNodeRot:Math.degToRad(90),icon:"Saturn-icon.png",name:"Saturn",defaultScene:!0,JITkepler:!0},Uranus:{elements:new n(19.18916464,.04725744,.77263783,313.23810451,170.9542763,74.01692503,0,0,360/30685.4),rates:new n(-.00196176,-4397e-8,-.00242939,428.48202785,.40805281,.04240589,0,0,0),ress:[1024,32,512],radius:25362e3,info:"Outer Solar System, Giant Planet",atm:.0065,trace:{color:"#b5dade",tail:0},astrBody:S3D.AstronomicalBody.PLANET,orbit:{periphelion:2741.3},northPole:{RA:257.311,DEC:-15.175},siderealDay:-17.24*OneHour,name:"Uranus",defaultScene:!0,JITkepler:!0},Neptune:{elements:new n(30.06992276,.00859048,1.77004347,-55.12002969,44.96476227,131.78422574,0,0,360/60189),rates:new n(26291e-8,5105e-8,35372e-8,218.45945325,-.32241464,-.00508664,0,0,0),ress:[32,512,2048],radius:24622e3,info:"Outer Solar System, Giant Planet",atm:.049244*.1,trace:{color:"#3954cb",tail:0},astrBody:S3D.AstronomicalBody.PLANET,orbit:{periphelion:4444.45},northPole:{RA:299.36,DEC:43.46},siderealDay:16.11*OneHour,name:"Neptune",defaultScene:!0,JITkepler:!0},Pluto:{elements:new n(39.48211675,.2488273,17.14001206,238.92903833,224.06891629,110.30393684,0,0,360/90560),rates:new n(-31596e-8,517e-7,4818e-8,145.20780515,-.04062942,-.01183482,0,0,0),ress:[1024,32],radius:1188e3,info:"Kuiper belt object",atm:2374e-7,trace:{color:"#7b7b7d",tail:0},astrBody:S3D.AstronomicalBody.PLANET,orbit:{periphelion:4436.82},northPole:{RA:132.99,DEC:-6.16},siderealDay:-153.2928*OneHour,name:"Pluto",defaultScene:!0,JITkepler:!0},Sun:{elements:new n(0,0,0,0,0,0,0,0,0),body:S3D.BodyType.SPHERE,radius:6957e5,min:.005,w:-Math.degToRad(360/(27*OneDay)*1e3),color:"#f28426",trace:!1,label:[{label:"Distance to Earth",data:[{unit:"distance",from:"this",to:"Earth",system:"metric"}
1]},{label:"Size",data:[{unit:"diameter",from:"this",system:"metric"}]}]},"Sun wrt. SSB":{elements:new n(.007355878652055718,.2701335692751972,1.551149169214215,0,344.205671160919,111.2042256142549,2458849.5,106.7542514529026,.07668680626392463)},Sol:{ress:[256],radius:6957e5,atm:917e6,min:.005,w:-Math.degToRad(360/(27*OneDay)*1e3),color:"#f28426"}},s={min:o.mobileAndTablet?.015:.01,trace:{color:"hsl("+360*Math.random()+", 100%, 75%)",tail:.99},label:[{label:"Speed",data:[{unit:"speed",from:"this",to:"Sun",system:"metric"}," or ",{unit:"speed",from:"this",to:"Sun",dimension:"kmh"}]},{label:"Distance to Earth",data:[{unit:"distance",from:"this",to:"Earth",system:"metric"}]},{label:"Size",data:[{unit:"diameter",from:"this",system:"metric"}]},{label:"Distance to Sun",data:[{unit:"distance",from:"this",to:"Sun",system:"metric"}]}],lodInf:1/0,w:0,siderealDay:1/0,Ref:"Ecliptic"};function l(){Object.defineProperties(this,{data:{enumerable:!0,value:a},get:{enumerable:!0,value:function(e){return a[e]}},fill:{enumerable:!0,value:function(e){var t=a[e.name];return t&&Object.keys(t).forEach((function(a,r,n){var o=t[a];if("object"===i(o)&&null!=e[a]){var s=o,l=e[a];Object.keys(s).forEach((function(e,t,a){var r=s[e];l[e]=null!=l[e]?l[e]:r}))}else e[a]=null!=e[a]?e[a]:o})),function(e){switch(null==e.body&&(e.ress?e.body=S3D.BodyType.DLOD:e.body=S3D.BodyType.SPRITE),e.body){case S3D.BodyType.DLOD:case S3D.BodyType.SPHERE:case S3D.BodyType.OBJ:case S3D.BodyType.FBX:"radius"in e&&(e.diameter=2*e.radius),"diameter"in e&&(e.radiu
1s=e.diameter/2),"radius"in e||(console.warn("Radius and diameter missing for item ".concat(e.name)),e.diameter=1,e.radius=e.diameter/2),e.size=e.diameter;break;case S3D.BodyType.SPRITE:var t;"radius"in e&&(e.size=2*e.radius),"diameter"in e&&(e.size=e.diameter),"size"in e||("radius"in e&&(e.size=2*e.radius),console.warn("Size missing for item ".concat(e.name)),null!==(t=e.size)&&void 0!==t||(e.size=1));break;default:console.warn("Size indeterminate for item ".concat(e.name))}if("JITblend"in e||"JITkepler"in e||"rates"in e||(e.rates=new n(0,0,0,0,0,0,0,0,0)),e.astrBody===S3D.AstronomicalBody.MOON&&(e.lodInf=2*e.elements.semiMajor*o.AstronomicalUnit*6,e.min=null!=e.min?e.min:1.25*s.min),null!=e.northPole){var a=e.northPole.DEC?e.northPole.DEC:0,l=e.northPole.RA?e.northPole.RA:0;a=90-a,l+=90,e.northPoleSpherical=new r.Spherical(1,Math.degToRad(a),Math.degToRad(l))}if("color"in e||(e.color="trace"in e&&"color"in e.trace?e.trace.color:"rgb(240,255,255)"),!("icon"in e))switch(e.astrBody){case S3D.AstronomicalBody.PLANET:e.icon="default-icon.png";break;case S3D.AstronomicalBody.MOON:e.icon="default-moon-icon.png";break;default:e.icon="default-icon.png"}if(!("info"in e))switch(e.astrBody){case S3D.AstronomicalBody.MOON:e.info="Moon of "+e.O}var c,d,u;"elements"in e&&(null!==(c=e.siderealPeriod)&&void 0!==c||(e.siderealPeriod=360/e.elements.meanMotion*OneDay),null!==(u=(d=e.elements).argPeri)&&void 0!==u||(d.argPeri=e.elements.longPeri-e.elements.longNode)),Object.keys(s).forEach((function(t,a,r){var n=s[t];if("object"===i(n)){e[t]=null!=e[t]?e[t]:n;var o=n,l=e[t];"object"===i(l)&&"label"!==t&&Object.keys(o).forEach((function(e,t,a){var r=o[e];l[e]=null!=l[e]?l[e]:r}))}else e[t]=null!=e[t]?e[t]:n}))}(e),e}}})}return(e=page.simulation[page.name].defaults)&&Object.keys(e).forEach((function(t,a,r){if("object"===i(e[t])){var n="label"===t;null==s[t]||n?s[t]=e[t]:Object.keys(e[t]).forEach((function(a,r,n){s[t][a]=null!=e[t][a]?e[t][a]:s[t][a]}))}else s[t]=null!=e[t]?e[t]:s[t]})),{getInstance:function(){return t||(t=new l),t}}}().getInstance()}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.