diff --git a/components/camera-recorder/examples/basic/aframe-supercraft-loader.min.js b/components/camera-recorder/examples/basic/aframe-supercraft-loader.min.js index 560e5024..7b80cf75 100644 --- a/components/camera-recorder/examples/basic/aframe-supercraft-loader.min.js +++ b/components/camera-recorder/examples/basic/aframe-supercraft-loader.min.js @@ -1370,7 +1370,7 @@ AFRAME.registerShader('skyshader', { schema: { luminance: { type: 'number', default: 1, min: 0, max: 2, is: 'uniform' }, turbidity: { type: 'number', default: 2, min: 0, max: 20, is: 'uniform' }, - reileigh: { type: 'number', default: 1, min: 0, max: 4, is: 'uniform' }, + rayleigh: { type: 'number', default: 1, min: 0, max: 4, is: 'uniform' }, mieCoefficient: { type: 'number', default: 0.005, min: 0, max: 0.1, is: 'uniform' }, mieDirectionalG: { type: 'number', default: 0.8, min: 0, max: 1, is: 'uniform' }, sunPosition: { type: 'vec3', default: {x: 0, y: 0, z: -1}, is: 'uniform' }, @@ -1395,7 +1395,7 @@ AFRAME.registerShader('skyshader', { 'uniform float luminance;', 'uniform float turbidity;', - 'uniform float reileigh;', + 'uniform float rayleigh;', 'uniform float mieCoefficient;', 'uniform float mieDirectionalG;', @@ -1482,7 +1482,7 @@ AFRAME.registerShader('skyshader', { '{', 'float sunfade = 1.0-clamp(1.0-exp((sunPosition.y/450000.0)),0.0,1.0);', - 'float reileighCoefficient = reileigh - (1.0* (1.0-sunfade));', + 'float rayleighCoefficient = rayleigh - (1.0* (1.0-sunfade));', 'vec3 sunDirection = normalize(sunPosition);', @@ -1491,7 +1491,7 @@ AFRAME.registerShader('skyshader', { // extinction (absorbtion + out scattering) // rayleigh coefficients - 'vec3 betaR = simplifiedRayleigh() * reileighCoefficient;', + 'vec3 betaR = simplifiedRayleigh() * rayleighCoefficient;', // mie coefficients 'vec3 betaM = totalMie(lambda, K, turbidity) * mieCoefficient;', @@ -2410,4 +2410,4 @@ AFRAME.registerComponent('vertex-colors-buffer', { /***/ }) -/******/ ]); \ No newline at end of file +/******/ ]); diff --git a/components/sun-sky/dist/aframe-sun-sky.js b/components/sun-sky/dist/aframe-sun-sky.js index 6db8b5b3..c59fcb51 100644 --- a/components/sun-sky/dist/aframe-sun-sky.js +++ b/components/sun-sky/dist/aframe-sun-sky.js @@ -52,7 +52,7 @@ luminance: {default: 1, max: 0, min: 2, is: 'uniform'}, mieCoefficient: {default: 0.005, min: 0, max: 0.1, is: 'uniform'}, mieDirectionalG: {default: 0.8, min: 0, max: 1, is: 'uniform'}, - reileigh: {default: 1, max: 0, min: 4, is: 'uniform'}, + rayleigh: {default: 1, max: 0, min: 4, is: 'uniform'}, sunPosition: {type: 'vec3', default: '0 0 -1', is: 'uniform'}, turbidity: {default: 2, max: 0, min: 20, is: 'uniform'} }, @@ -78,7 +78,7 @@ luminance: 'material.luminance', mieCoefficient: 'material.mieCoefficient', mieDirectionalG: 'material.mieDirectionalG', - reileigh: 'material.reileigh', + rayleigh: 'material.rayleigh', sunPosition: 'material.sunPosition', turbidity: 'material.turbidity' } @@ -95,7 +95,7 @@ /* 2 */ /***/ function(module, exports) { - module.exports = "uniform sampler2D skySampler;\nuniform vec3 sunPosition;\nvarying vec3 vWorldPosition;\n\nvec3 cameraPos = vec3(0., 0., 0.);\n\nuniform float luminance;\nuniform float turbidity;\nuniform float reileigh;\nuniform float mieCoefficient;\nuniform float mieDirectionalG;\n\n// constants for atmospheric scattering\nconst float e = 2.71828182845904523536028747135266249775724709369995957;\nconst float pi = 3.141592653589793238462643383279502884197169;\n\nconst float n = 1.0003; // refractive index of air\nconst float N = 2.545E25; // number of molecules per unit volume for air at\n// 288.15K and 1013mb (sea level -45 celsius)\nconst float pn = 0.035; // depolatization factor for standard air\n\n// wavelength of used primaries, according to preetham\nconst vec3 lambda = vec3(680E-9, 550E-9, 450E-9);\n\n// mie stuff\n// K coefficient for the primaries\nconst vec3 K = vec3(0.686, 0.678, 0.666);\nconst float v = 4.0;\n\n// optical length at zenith for molecules\nconst float rayleighZenithLength = 8.4E3;\nconst float mieZenithLength = 1.25E3;\nconst vec3 up = vec3(0.0, 1.0, 0.0);\n\nconst float EE = 1000.0;\nconst float sunAngularDiameterCos = 0.999956676946448443553574619906976478926848692873900859324;\n// 66 arc seconds -> degrees, and the cosine of that\n\n// earth shadow hack\nconst float cutoffAngle = pi/1.95;\nconst float steepness = 1.5;\n\nvec3 totalRayleigh(vec3 lambda)\n{\n return (8.0 * pow(pi, 3.0) * pow(pow(n, 2.0) - 1.0, 2.0) * (6.0 + 3.0 * pn)) / (3.0 * N * pow(lambda, vec3(4.0)) * (6.0 - 7.0 * pn));\n}\n\n// see http://blenderartists.org/forum/showthread.php?321110-Shaders-and-Skybox-madness\n// A simplied version of the total Rayleigh scattering to works on browsers that use ANGLE\nvec3 simplifiedRayleigh()\n{\n return 0.0005 / vec3(94, 40, 18);\n}\n\nfloat rayleighPhase(float cosTheta)\n{\n return (3.0 / (16.0*pi)) * (1.0 + pow(cosTheta, 2.0));\n}\n\nvec3 totalMie(vec3 lambda, vec3 K, float T)\n{\n float c = (0.2 * T ) * 10E-18;\n return 0.434 * c * pi * pow((2.0 * pi) / lambda, vec3(v - 2.0)) * K;\n}\n\nfloat hgPhase(float cosTheta, float g)\n{\n return (1.0 / (4.0*pi)) * ((1.0 - pow(g, 2.0)) / pow(1.0 - 2.0*g*cosTheta + pow(g, 2.0), 1.5));\n}\n\nfloat sunIntensity(float zenithAngleCos)\n{\n return EE * max(0.0, 1.0 - exp(-((cutoffAngle - acos(zenithAngleCos))/steepness)));\n}\n\n// Filmic ToneMapping http://filmicgames.com/archives/75\nfloat A = 0.15;\nfloat B = 0.50;\nfloat C = 0.10;\nfloat D = 0.20;\nfloat E = 0.02;\nfloat F = 0.30;\nfloat W = 1000.0;\n\nvec3 Uncharted2Tonemap(vec3 x)\n{\n return ((x*(A*x+C*B)+D*E)/(x*(A*x+B)+D*F))-E/F;\n}\n\nvoid main()\n{\n float sunfade = 1.0-clamp(1.0-exp((sunPosition.y/450000.0)),0.0,1.0);\n\n float reileighCoefficient = reileigh - (1.0* (1.0-sunfade));\n\n vec3 sunDirection = normalize(sunPosition);\n\n float sunE = sunIntensity(dot(sunDirection, up));\n\n // extinction (absorbtion + out scattering)\n // rayleigh coefficients\n\n vec3 betaR = simplifiedRayleigh() * reileighCoefficient;\n\n // mie coefficients\n vec3 betaM = totalMie(lambda, K, turbidity) * mieCoefficient;\n\n // optical length\n // cutoff angle at 90 to avoid singularity in next formula.\n float zenithAngle = acos(max(0.0, dot(up, normalize(vWorldPosition - cameraPos))));\n float sR = rayleighZenithLength / (cos(zenithAngle) + 0.15 * pow(93.885 - ((zenithAngle * 180.0) / pi), -1.253));\n float sM = mieZenithLength / (cos(zenithAngle) + 0.15 * pow(93.885 - ((zenithAngle * 180.0) / pi), -1.253));\n\n // combined extinction factor\n vec3 Fex = exp(-(betaR * sR + betaM * sM));\n\n // in scattering\n float cosTheta = dot(normalize(vWorldPosition - cameraPos), sunDirection);\n\n float rPhase = rayleighPhase(cosTheta*0.5+0.5);\n vec3 betaRTheta = betaR * rPhase;\n\n float mPhase = hgPhase(cosTheta, mieDirectionalG);\n vec3 betaMTheta = betaM * mPhase;\n\n vec3 Lin = pow(sunE * ((betaRTheta + betaMTheta) / (betaR + betaM)) * (1.0 - Fex),vec3(1.5));\n Lin *= mix(vec3(1.0),pow(sunE * ((betaRTheta + betaMTheta) / (betaR + betaM)) * Fex,vec3(1.0/2.0)),clamp(pow(1.0-dot(up, sunDirection),5.0),0.0,1.0));\n\n //nightsky\n vec3 direction = normalize(vWorldPosition - cameraPos);\n float theta = acos(direction.y); // elevation --> y-axis, [-pi/2, pi/2]\n float phi = atan(direction.z, direction.x); // azimuth --> x-axis [-pi/2, pi/2]\n vec2 uv = vec2(phi, theta) / vec2(2.0*pi, pi) + vec2(0.5, 0.0);\n // vec3 L0 = texture2D(skySampler, uv).rgb+0.1 * Fex;\n vec3 L0 = vec3(0.1) * Fex;\n\n // composition + solar disc\n float sundisk = smoothstep(sunAngularDiameterCos,sunAngularDiameterCos+0.00002,cosTheta);\n L0 += (sunE * 19000.0 * Fex)*sundisk;\n\n vec3 whiteScale = 1.0/Uncharted2Tonemap(vec3(W));\n\n vec3 texColor = (Lin+L0);\n texColor *= 0.04 ;\n texColor += vec3(0.0,0.001,0.0025)*0.3;\n\n float g_fMaxLuminance = 1.0;\n float fLumScaled = 0.1 / luminance;\n float fLumCompressed = (fLumScaled * (1.0 + (fLumScaled / (g_fMaxLuminance * g_fMaxLuminance)))) / (1.0 + fLumScaled);\n\n float ExposureBias = fLumCompressed;\n\n vec3 curr = Uncharted2Tonemap((log2(2.0/pow(luminance,4.0)))*texColor);\n vec3 color = curr*whiteScale;\n\n vec3 retColor = pow(color,vec3(1.0/(1.2+(1.2*sunfade))));\n\n gl_FragColor.rgb = retColor;\n\n gl_FragColor.a = 1.0;\n}\n" + module.exports = "uniform sampler2D skySampler;\nuniform vec3 sunPosition;\nvarying vec3 vWorldPosition;\n\nvec3 cameraPos = vec3(0., 0., 0.);\n\nuniform float luminance;\nuniform float turbidity;\nuniform float rayleigh;\nuniform float mieCoefficient;\nuniform float mieDirectionalG;\n\n// constants for atmospheric scattering\nconst float e = 2.71828182845904523536028747135266249775724709369995957;\nconst float pi = 3.141592653589793238462643383279502884197169;\n\nconst float n = 1.0003; // refractive index of air\nconst float N = 2.545E25; // number of molecules per unit volume for air at\n// 288.15K and 1013mb (sea level -45 celsius)\nconst float pn = 0.035; // depolatization factor for standard air\n\n// wavelength of used primaries, according to preetham\nconst vec3 lambda = vec3(680E-9, 550E-9, 450E-9);\n\n// mie stuff\n// K coefficient for the primaries\nconst vec3 K = vec3(0.686, 0.678, 0.666);\nconst float v = 4.0;\n\n// optical length at zenith for molecules\nconst float rayleighZenithLength = 8.4E3;\nconst float mieZenithLength = 1.25E3;\nconst vec3 up = vec3(0.0, 1.0, 0.0);\n\nconst float EE = 1000.0;\nconst float sunAngularDiameterCos = 0.999956676946448443553574619906976478926848692873900859324;\n// 66 arc seconds -> degrees, and the cosine of that\n\n// earth shadow hack\nconst float cutoffAngle = pi/1.95;\nconst float steepness = 1.5;\n\nvec3 totalRayleigh(vec3 lambda)\n{\n return (8.0 * pow(pi, 3.0) * pow(pow(n, 2.0) - 1.0, 2.0) * (6.0 + 3.0 * pn)) / (3.0 * N * pow(lambda, vec3(4.0)) * (6.0 - 7.0 * pn));\n}\n\n// see http://blenderartists.org/forum/showthread.php?321110-Shaders-and-Skybox-madness\n// A simplied version of the total Rayleigh scattering to works on browsers that use ANGLE\nvec3 simplifiedRayleigh()\n{\n return 0.0005 / vec3(94, 40, 18);\n}\n\nfloat rayleighPhase(float cosTheta)\n{\n return (3.0 / (16.0*pi)) * (1.0 + pow(cosTheta, 2.0));\n}\n\nvec3 totalMie(vec3 lambda, vec3 K, float T)\n{\n float c = (0.2 * T ) * 10E-18;\n return 0.434 * c * pi * pow((2.0 * pi) / lambda, vec3(v - 2.0)) * K;\n}\n\nfloat hgPhase(float cosTheta, float g)\n{\n return (1.0 / (4.0*pi)) * ((1.0 - pow(g, 2.0)) / pow(1.0 - 2.0*g*cosTheta + pow(g, 2.0), 1.5));\n}\n\nfloat sunIntensity(float zenithAngleCos)\n{\n return EE * max(0.0, 1.0 - exp(-((cutoffAngle - acos(zenithAngleCos))/steepness)));\n}\n\n// Filmic ToneMapping http://filmicgames.com/archives/75\nfloat A = 0.15;\nfloat B = 0.50;\nfloat C = 0.10;\nfloat D = 0.20;\nfloat E = 0.02;\nfloat F = 0.30;\nfloat W = 1000.0;\n\nvec3 Uncharted2Tonemap(vec3 x)\n{\n return ((x*(A*x+C*B)+D*E)/(x*(A*x+B)+D*F))-E/F;\n}\n\nvoid main()\n{\n float sunfade = 1.0-clamp(1.0-exp((sunPosition.y/450000.0)),0.0,1.0);\n\n float rayleighCoefficient = rayleigh - (1.0* (1.0-sunfade));\n\n vec3 sunDirection = normalize(sunPosition);\n\n float sunE = sunIntensity(dot(sunDirection, up));\n\n // extinction (absorbtion + out scattering)\n // rayleigh coefficients\n\n vec3 betaR = simplifiedRayleigh() * rayleighCoefficient;\n\n // mie coefficients\n vec3 betaM = totalMie(lambda, K, turbidity) * mieCoefficient;\n\n // optical length\n // cutoff angle at 90 to avoid singularity in next formula.\n float zenithAngle = acos(max(0.0, dot(up, normalize(vWorldPosition - cameraPos))));\n float sR = rayleighZenithLength / (cos(zenithAngle) + 0.15 * pow(93.885 - ((zenithAngle * 180.0) / pi), -1.253));\n float sM = mieZenithLength / (cos(zenithAngle) + 0.15 * pow(93.885 - ((zenithAngle * 180.0) / pi), -1.253));\n\n // combined extinction factor\n vec3 Fex = exp(-(betaR * sR + betaM * sM));\n\n // in scattering\n float cosTheta = dot(normalize(vWorldPosition - cameraPos), sunDirection);\n\n float rPhase = rayleighPhase(cosTheta*0.5+0.5);\n vec3 betaRTheta = betaR * rPhase;\n\n float mPhase = hgPhase(cosTheta, mieDirectionalG);\n vec3 betaMTheta = betaM * mPhase;\n\n vec3 Lin = pow(sunE * ((betaRTheta + betaMTheta) / (betaR + betaM)) * (1.0 - Fex),vec3(1.5));\n Lin *= mix(vec3(1.0),pow(sunE * ((betaRTheta + betaMTheta) / (betaR + betaM)) * Fex,vec3(1.0/2.0)),clamp(pow(1.0-dot(up, sunDirection),5.0),0.0,1.0));\n\n //nightsky\n vec3 direction = normalize(vWorldPosition - cameraPos);\n float theta = acos(direction.y); // elevation --> y-axis, [-pi/2, pi/2]\n float phi = atan(direction.z, direction.x); // azimuth --> x-axis [-pi/2, pi/2]\n vec2 uv = vec2(phi, theta) / vec2(2.0*pi, pi) + vec2(0.5, 0.0);\n // vec3 L0 = texture2D(skySampler, uv).rgb+0.1 * Fex;\n vec3 L0 = vec3(0.1) * Fex;\n\n // composition + solar disc\n float sundisk = smoothstep(sunAngularDiameterCos,sunAngularDiameterCos+0.00002,cosTheta);\n L0 += (sunE * 19000.0 * Fex)*sundisk;\n\n vec3 whiteScale = 1.0/Uncharted2Tonemap(vec3(W));\n\n vec3 texColor = (Lin+L0);\n texColor *= 0.04 ;\n texColor += vec3(0.0,0.001,0.0025)*0.3;\n\n float g_fMaxLuminance = 1.0;\n float fLumScaled = 0.1 / luminance;\n float fLumCompressed = (fLumScaled * (1.0 + (fLumScaled / (g_fMaxLuminance * g_fMaxLuminance)))) / (1.0 + fLumScaled);\n\n float ExposureBias = fLumCompressed;\n\n vec3 curr = Uncharted2Tonemap((log2(2.0/pow(luminance,4.0)))*texColor);\n vec3 color = curr*whiteScale;\n\n vec3 retColor = pow(color,vec3(1.0/(1.2+(1.2*sunfade))));\n\n gl_FragColor.rgb = retColor;\n\n gl_FragColor.a = 1.0;\n}\n" /***/ } -/******/ ]); \ No newline at end of file +/******/ ]); diff --git a/components/sun-sky/examples/build.js b/components/sun-sky/examples/build.js index f624522b..dba67209 100644 --- a/components/sun-sky/examples/build.js +++ b/components/sun-sky/examples/build.js @@ -31,4 +31,4 @@ i&&(this.remove(),this.loader.load(i,function(i){e.model=i.scene,t.setObject3D(" controller:{"default":0},id:{"default":"OpenVR Gamepad"}},init:function(){this.buttonStates={},this.axisState=[]},update:function(){function e(e){return e.id===i.id}var t=this.system.controllers,i=this.data;t=t.filter(e),this.controller=t[i.controller]},tick:function(e,t){var i=this.el.getObject3D("mesh");i&&(i.update&&i.update(t/1e3),this.updatePose(),this.updateButtons())},updatePose:function(){var e=new n.Euler,t=new n.Vector3,i=new n.Quaternion,r=new n.Object3D,o=new n.Matrix4;return e.order="YXZ",function(){var a,s,c,u,l=this.el,h=this.system.vrDisplay;this.update(),a=this.controller,a&&(s=a.pose,c=s.orientation||[0,0,0,1],u=s.position||[0,0,0],i.fromArray(c),r.quaternion.fromArray(c),r.position.fromArray(u),r.updateMatrix(),h&&h.stageParameters&&(o.fromArray(h.stageParameters.sittingToStandingTransform),r.applyMatrix(o)),e.setFromRotationMatrix(r.matrix),t.setFromMatrixPosition(r.matrix),l.setAttribute("rotation",{x:n.Math.radToDeg(e.x),y:n.Math.radToDeg(e.y),z:n.Math.radToDeg(e.z)}),l.setAttribute("position",{x:t.x,y:t.y,z:t.z}))}}(),updateButtons:function(){var e,t,i=this.controller;if(this.controller){for(e=0;ea)return o[h]=0,void(o[d]=0);o[h]-=o[h]*n*u,o[d]-=o[d]*n*u;var g=m.getComputedAttribute("position");i.enabled&&(i.adEnabled&&(l[65]&&(o[h]-=p*r*u),l[68]&&(o[h]+=p*r*u)),i.wsEnabled&&(l[87]&&(o[d]-=f*r*u),l[83]&&(o[d]+=f*r*u))),t=this.getMovementVector(u),m.object3D.translateX(t.x),m.object3D.translateY(t.y),m.object3D.translateZ(t.z),m.setAttribute("position",{x:g.x+t.x,y:g.y+t.y,z:g.z+t.z})},play:function(){this.attachKeyEventListeners()},pause:function(){this.keys={},this.removeKeyEventListeners()},tick:function(e){this.update()},remove:function(){this.pause(),this.removeVisibilityEventListeners()},attachVisibilityEventListeners:function(){window.addEventListener("blur",this.onBlur),window.addEventListener("focus",this.onFocus),document.addEventListener("visibilitychange",this.onVisibilityChange)},removeVisibilityEventListeners:function(){window.removeEventListener("blur",this.onBlur),window.removeEventListener("focus",this.onFocus),document.removeEventListener("visibilitychange",this.onVisibilityChange)},attachKeyEventListeners:function(){window.addEventListener("keydown",this.onKeyDown),window.addEventListener("keyup",this.onKeyUp)},removeKeyEventListeners:function(){window.removeEventListener("keydown",this.onKeyDown),window.removeEventListener("keyup",this.onKeyUp)},onBlur:function(){this.pause()},onFocus:function(){this.play()},onVisibilityChange:function(){document.hidden?this.onBlur():this.onFocus()},onKeyDown:function(e){n(e)&&(this.keys[e.keyCode]=!0)},onKeyUp:function(e){n(e)&&(this.keys[e.keyCode]=!1)},getMovementVector:function(e){var t=new o.Vector3(0,0,0),i=new o.Euler(0,0,0,"YXZ");return function(e){var r=this.velocity,n=this.el.getComputedAttribute("rotation");return t.copy(r),t.multiplyScalar(e),n?(this.data.fly||(n.x=0),i.set(o.Math.degToRad(n.x),o.Math.degToRad(n.y),0),t.applyEuler(i),t):t}}()})},{"../core/component":59,"../lib/three":103,"../utils/":120}],50:[function(e,t,i){var r=e("tween.js"),n={alternate:"alternate",alternateReverse:"alternate-reverse",normal:"normal",reverse:"reverse"},o={linear:r.Easing.Linear.None,ease:r.Easing.Cubic.InOut,"ease-in":r.Easing.Cubic.In,"ease-out":r.Easing.Cubic.Out,"ease-in-out":r.Easing.Cubic.InOut,"ease-cubic":r.Easing.Cubic.In,"ease-in-cubic":r.Easing.Cubic.In,"ease-out-cubic":r.Easing.Cubic.Out,"ease-in-out-cubic":r.Easing.Cubic.InOut,"ease-quad":r.Easing.Quadratic.InOut,"ease-in-quad":r.Easing.Quadratic.In,"ease-out-quad":r.Easing.Quadratic.Out,"ease-in-out-quad":r.Easing.Quadratic.InOut,"ease-quart":r.Easing.Quartic.InOut,"ease-in-quart":r.Easing.Quartic.In,"ease-out-quart":r.Easing.Quartic.Out,"ease-in-out-quart":r.Easing.Quartic.InOut,"ease-quint":r.Easing.Quintic.InOut,"ease-in-quint":r.Easing.Quintic.In,"ease-out-quint":r.Easing.Quintic.Out,"ease-in-out-quint":r.Easing.Quintic.InOut,"ease-sine":r.Easing.Sinusoidal.InOut,"ease-in-sine":r.Easing.Sinusoidal.In,"ease-out-sine":r.Easing.Sinusoidal.Out,"ease-in-out-sine":r.Easing.Sinusoidal.InOut,"ease-expo":r.Easing.Exponential.InOut,"ease-in-expo":r.Easing.Exponential.In,"ease-out-expo":r.Easing.Exponential.Out,"ease-in-out-expo":r.Easing.Exponential.InOut,"ease-circ":r.Easing.Circular.InOut,"ease-in-circ":r.Easing.Circular.In,"ease-out-circ":r.Easing.Circular.Out,"ease-in-out-circ":r.Easing.Circular.InOut,"ease-elastic":r.Easing.Elastic.InOut,"ease-in-elastic":r.Easing.Elastic.In,"ease-out-elastic":r.Easing.Elastic.Out,"ease-in-out-elastic":r.Easing.Elastic.InOut,"ease-back":r.Easing.Back.InOut,"ease-in-back":r.Easing.Back.In,"ease-out-back":r.Easing.Back.Out,"ease-in-out-back":r.Easing.Back.InOut,"ease-bounce":r.Easing.Bounce.InOut,"ease-in-bounce":r.Easing.Bounce.In,"ease-out-bounce":r.Easing.Bounce.Out,"ease-in-out-bounce":r.Easing.Bounce.InOut},a={backwards:"backwards",both:"both",forwards:"forwards",none:"none"},s={indefinite:"indefinite"},c={attribute:"rotation",begin:"",end:"",delay:0,dur:1e3,easing:"ease",direction:n.normal,fill:a.forwards,from:void 0,repeat:0,to:void 0};t.exports.defaults=c,t.exports.directions=n,t.exports.easingFunctions=o,t.exports.fills=a,t.exports.repeats=s},{"tween.js":18}],51:[function(e,t,i){t.exports={AFRAME_INJECTED:"aframe-injected",animation:e("./animation")}},{"./animation":50}],52:[function(e,t,i){function r(e){return v.extend({},e)}function n(e,t,i,r,n){function s(){var t=E[0],i=E[1],r=e.components[t],n=r&&r.schema;return n&&n[i]&&"color"===n[i].type}function c(){x=E[0],A=E[1],M=e.components[x],M||(e.setAttribute(x,""),M=e.components[x]),v=M.schema,void 0===i?T[t]=y(e,t):T[t]=i,T[t]=p(T[t],v[A]),L[t]=p(r,v[A]),w=function(i){t in i&&e.setAttribute(x,A,i[t])}}function l(){T=i?d.parse(i):n,L=d.parse(r),w=function(i){e.setAttribute(t,i)}}function h(){void 0===i?T[t]=!1:T[t]=o(i),T[t]=a(T[t]),L[t]=a(o(r)),w=function(i){e.setAttribute(t,!!i[t])}}function f(){T=new g.Color(i),L=new g.Color(r),w=function(i){E.length>1&&e.setAttribute(E[0],E[1],u(i)),e.setAttribute(t,u(i))}}function m(){void 0===i?T[t]=parseFloat(e.getAttribute(t)):T[t]=parseFloat(i),L[t]=parseFloat(r),w=function(i){e.setAttribute(t,i[t])}}var v,M,A,x,w,E=t.split("."),T={},L={};return 2===E.length?s()?f():c():r&&b(r)?l():["true","false"].indexOf(r)!==-1?h():isNaN(r)?f():m(),{from:T,partialSetAttribute:w,to:L}}function o(e){return"true"===e}function a(e){return e?1:0}function s(e){var t=e.toString(16);return 1===t.length?"0"+t:t}function c(e){return Math.floor(255*Math.min(Math.abs(e),1))}function u(e){return"#"+["r","g","b"].map(function(t){return s(c(e[t]))}).join("")}var l=e("./a-node"),h=e("../constants/animation"),d=e("../utils/").coordinates,p=e("./schema").parseProperty,f=e("./a-register-element").registerElement,m=e("tween.js"),g=e("../lib/three"),v=e("../utils/"),y=v.entity.getComponentProperty,M=h.defaults,A=h.directions,x=h.easingFunctions,w=h.fills,E=h.repeats,b=d.isCoordinate;t.exports.AAnimation=f("a-animation",{prototype:Object.create(l.prototype,{createdCallback:{value:function(){this.bindMethods(),this.isRunning=!1,this.partialSetAttribute=function(){},this.tween=null}},attachedCallback:{value:function(){this.el=this.parentNode,this.handleMixinUpdate(),this.update(),this.load()}},attributeChangedCallback:{value:function(e,t,i){this.hasLoaded&&this.isRunning&&(this.stop(),this.handleMixinUpdate(),this.update())}},detachedCallback:{value:function(){this.isRunning&&this.stop()}},getTween:{value:function(){var e,t,i,o,a=this,s=a.data,c=a.el,u=s.attribute,l=parseInt(s.delay,10),h=y(c,u),d=a.getDirection(s.direction),p=x[s.easing],f=s.fill,g=s.repeat===E.indefinite?1/0:0,v=!1;return e=n(c,u,s.from||a.initialValue,s.to,h),t=e.from,i=e.to,a.partialSetAttribute=e.partialSetAttribute,void 0===a.count&&(a.count=g===1/0?0:parseInt(s.repeat,10)),isNaN(l)&&(l=0),a.initialValue=a.initialValue||r(h),g===1/0&&f===w.forwards&&[A.alternate,A.alternateReverse].indexOf(s.direction)!==-1&&(v=!0),d===A.reverse&&(o=i,i=r(t),t=r(o)),[w.backwards,w.both].indexOf(f)!==-1&&a.partialSetAttribute(t),new m.Tween(r(t)).to(i,s.dur).delay(l).easing(p).repeat(g).yoyo(v).onUpdate(function(){a.partialSetAttribute(this)}).onComplete(a.onCompleted.bind(a))}},update:{value:function(){var e=this.data;"infinite"===e.repeat&&console.warn("Using 'infinite' as 'repeat' value is invalid. Use 'indefinite' instead."),""===e.begin||isNaN(e.begin)||(console.warn("Using 'begin' to specify a delay is deprecated. Use 'delay' instead."),e.delay=e.begin,e.begin="");var t=e.begin,i=e.end;this.evt&&this.removeEventListeners(this.evt),this.evt={begin:t,end:i},this.addEventListeners(this.evt),""===t&&(this.stop(),this.start())},writable:window.debug},onCompleted:{value:function(){var e=this.data;return this.isRunning=!1,[w.backwards,w.none].indexOf(e.fill)!==-1&&this.partialSetAttribute(this.initialValue),0===this.count?(this.count=void 0,void this.emit("animationend")):(this.isRunning=!1,this.count--,void this.start())}},start:{value:function(){var e=this;return this.el.hasLoaded?void(!this.isRunning&&this.el.isPlaying&&(this.tween=this.getTween(),this.isRunning=!0,this.tween.start(),this.emit("animationstart"))):void this.el.addEventListener("loaded",function(){e.start()})},writable:!0},stop:{value:function(){var e=this.tween;e&&(e.stop(),this.isRunning=!1,[w.backwards,w.none].indexOf(this.data.fill)!==-1&&this.partialSetAttribute(this.initialValue),this.emit("animationstop"))},writable:!0},getDirection:{value:function(e){return e===A.alternate?(this.prevDirection=this.prevDirection===A.normal?A.reverse:A.normal,this.prevDirection):e===A.alternateReverse?(this.prevDirection=this.prevDirection===A.reverse?A.normal:A.reverse,this.prevDirection):e}},bindMethods:{value:function(){this.start=this.start.bind(this),this.stop=this.stop.bind(this),this.onStateAdded=this.onStateAdded.bind(this),this.onStateRemoved=this.onStateRemoved.bind(this)}},addEventListeners:{value:function(e){var t=this.el,i=this;v.splitString(e.begin).forEach(function(e){t.addEventListener(e,i.start)}),v.splitString(e.end).forEach(function(e){t.addEventListener(e,i.stop)}),""===e.begin&&t.addEventListener("play",this.start),t.addEventListener("pause",this.stop),t.addEventListener("stateadded",this.onStateAdded),t.addEventListener("stateremoved",this.onStateRemoved)}},removeEventListeners:{value:function(e){var t=this.el,i=this.start,r=this.stop;v.splitString(e.begin).forEach(function(e){t.removeEventListener(e,i)}),v.splitString(e.end).forEach(function(e){t.removeEventListener(e,r)}),t.removeEventListener("stateadded",this.onStateAdded),t.removeEventListener("stateremoved",this.onStateRemoved)}},onStateAdded:{value:function(e){e.detail.state===this.data.begin&&this.start()},writable:!0},onStateRemoved:{value:function(e){e.detail.state===this.data.begin&&this.stop()},writable:!0},handleMixinUpdate:{value:function(){var e,t,i,r={};i=document.querySelector("#"+this.getAttribute("mixin")),t=i?v.getElData(i,M):{},e=v.getElData(this,M),v.extend(r,M,t,e),this.data=r}}})}),t.exports.getAnimationValues=n},{"../constants/animation":50,"../lib/three":103,"../utils/":120,"./a-node":57,"./a-register-element":58,"./schema":66,"tween.js":18}],53:[function(e,t,i){function r(e){if(e.hasAttribute("autoplay")||"auto"===e.getAttribute("preload"))return new Promise(function(t,i){function r(){for(var i=0,r=0;r=e.duration&&t()}return 4===e.readyState?t():e.error?i():(e.addEventListener("loadeddata",r,!1),e.addEventListener("progress",r,!1),void e.addEventListener("error",i,!1))})}function n(e){var t,i;return e.hasAttribute("crossorigin")?e:(i=e.getAttribute("src"),i.indexOf("://")===-1?e:o(i)===window.location.host?e:(h("Cross-origin element was requested without `crossorigin` set. A-Frame will re-request the asset with `crossorigin` attribute set.",i),e.crossOrigin="anonymous",t=e.cloneNode(!0),e.parentNode.appendChild(t),e.parentNode.removeChild(e),t))}function o(e){var t=e.indexOf("://")>-1?e.split("/")[2]:e.split("/")[0];return t.split(":")[0]}var a=e("./a-node"),s=e("../utils/debug"),c=e("./a-register-element").registerElement,u=e("../lib/three"),l=new u.XHRLoader,h=s("core:a-assets:warn");t.exports=c("a-assets",{prototype:Object.create(a.prototype,{createdCallback:{value:function(){this.isAssets=!0}},attachedCallback:{value:function(){var e,t,i,o,a,s,c=this,u=[];if(!this.parentNode.isScene)throw new Error(" must be a child of a .");for(a=this.querySelectorAll("img"),e=0;e did not contain exactly six elements each with a `src` attribute.")},writable:window.debug}})})},{"../utils/debug":117,"./a-register-element":58}],55:[function(e,t,i){function r(e,t){return void 0!==e.defaultComponents[t]||(!(!e.components[t]||!e.components[t].attrValue)||o(t,e.mixinEls))}function n(e){var t=[];return e.mixinEls.forEach(function(e){function i(e){t.push(e)}Object.keys(e.componentCache).forEach(i)}),t}function o(e,t){var i,r=!1;for(i=0;i has been DEPRECATED. Use https://github.com/ngokevin/aframe-event-set-component instead."),e?this.targetEls=this.el.sceneEl.querySelectorAll(e):this.targetEls=[this.el],this.deprecated&&console.warn("<"+this.tagName.toLowerCase()+'> has been DEPRECATED. Use instead.'),this.hasAttribute("type")&&console.log(" has been DEPRECATED. Use instead."),this.listener=this.attachEventListener(),this.load()}},detachedCallback:{value:function(){var e=this.listener;e&&this.removeEventListener(this.name,e)}},attachEventListener:{value:function(){var e=this.attributes,t=this.el,i=this.name,r=this.targetEls;return t.addEventListener(i,function(){for(var t,i,n,o,s=0;s",e),t.defaultAttributes&&console.warn("The 'defaultAttributes' object is deprecated. Use 'defaultComponents' instead.");var i=o(e,{prototype:Object.create(r.prototype,{defaultComponentsFromPrimitive:{value:t.defaultComponents||t.defaultAttributes||{}},deprecated:{value:t.deprecated||null},deprecatedMappings:{value:t.deprecatedMappings||{}},mappings:{value:t.mappings||{}},transforms:{value:t.transforms||{}},createdCallback:{value:function(){this.componentData={},t.deprecated&&console.warn(t.deprecated)}},attachedCallback:{value:function(){var e=this,t=this.attributes;this.applyDefaultComponents(),Object.keys(t).forEach(function(i){var r=t[i];e.syncAttributeToComponent(r.name,r.value)})}},attributeChangedCallback:{value:function(e,t,i){this.syncAttributeToComponent(e,i)}},applyDefaultComponents:{value:function(){var e=this,t=this.defaultComponentsFromPrimitive;Object.keys(t).forEach(function(i){var r=t[i];if(r instanceof Object){var o=n[i],a=e.getAttribute(i)||{},s=o.parse(a);return Object.keys(r).forEach(function(e){s[e]||(s[e]=r[e])}),void e.setAttribute(i,s)}e.setAttribute(i,r)})}},syncAttributeToComponent:{value:function(e,t){var i=this.mappings[e];e in this.deprecatedMappings&&console.warn(this.deprecatedMappings[e]),e&&i&&(t=this.getTransformedValue(e,t),c(this,i,t))}},getTransformedValue:{value:function(e,t){return this.transforms&&this.transforms[e]?this.transforms[e].bind(this)(t):t}}})});return l[e]=i,i}},{"../../core/a-entity":55,"../../core/a-register-element":58,"../../core/component":59,"../../utils/":120}],75:[function(e,t,i){var r=e("../primitives").registerPrimitive;r("a-camera",{defaultComponents:{camera:{userHeight:1.6},"look-controls":{},"wasd-controls":{}},mappings:{active:"camera.active",far:"camera.far",fov:"camera.fov","look-controls-enabled":"look-controls.enabled",near:"camera.near","wasd-controls-enabled":"wasd-controls.enabled","user-height":"camera.userHeight",zoom:"camera.zoom"},deprecatedMappings:{"cursor-color":"a-camera[cursor-color] has been removed. Use a-cursor[color] instead.","cursor-maxdistance":"a-camera[cursor-maxdistance] has been removed. Use a-cursor[max-distance] instead.","cursor-offset":"a-camera[cursor-offset] has been removed. Use a-cursor[position] instead.","cursor-opacity":"a-camera[cursor-offset] has been removed. Use a-cursor[opacity] instead.","cursor-scale":"a-camera[cursor-scale] has been removed. Use a-cursor[scale] instead.","cursor-visible":"a-camera[cursor-visible] has been removed. Use a-cursor[visible] instead."}})},{"../primitives":74}],76:[function(e,t,i){var r=e("../getMeshMixin"),n=e("../primitives").registerPrimitive,o=e("../../../utils/");n("a-collada-model",o.extendDeep({},r(),{mappings:{src:"collada-model"}}))},{"../../../utils/":120,"../getMeshMixin":72,"../primitives":74}],77:[function(e,t,i){var r=e("../getMeshMixin"),n=e("../primitives").registerPrimitive,o=e("../../../utils/");n("a-cursor",o.extendDeep({},r(),{defaultComponents:{cursor:{},geometry:{primitive:"ring",radiusOuter:.016,radiusInner:.01,segmentsTheta:64},material:{color:"#000",shader:"flat",opacity:.8},position:{x:0,y:0,z:-1},raycaster:{far:1e3}},mappings:{far:"raycaster.far",fuse:"cursor.fuse",interval:"raycaster.interval",objects:"raycaster.objects","fuse-timeout":"cursor.fuseTimeout"}}))},{"../../../utils/":120,"../getMeshMixin":72,"../primitives":74}],78:[function(e,t,i){var r=e("../getMeshMixin"),n=e("../primitives").registerPrimitive,o=e("../../../utils/");n("a-curvedimage",o.extendDeep({},r(),{defaultComponents:{geometry:{height:1,primitive:"cylinder",radius:2,segmentsRadial:48,thetaLength:270,openEnded:!0,thetaStart:0},material:{color:"#FFF",shader:"flat",side:"double",transparent:!0,repeat:"-1 1"}},mappings:{height:"geometry.height","open-ended":"geometry.openEnded",radius:"geometry.radius",segments:"geometry.segmentsRadial",start:"geometry.thetaStart","theta-length":"geometry.thetaLength","theta-start":"geometry.thetaStart",width:"geometry.thetaLength"}}))},{"../../../utils/":120,"../getMeshMixin":72,"../primitives":74}],79:[function(e,t,i){var r=e("../getMeshMixin"),n=e("../primitives").registerPrimitive,o=e("../../../utils/");n("a-image",o.extendDeep({},r(),{defaultComponents:{geometry:{primitive:"plane"},material:{color:"#FFF",shader:"flat",side:"double",transparent:!0}},mappings:{height:"geometry.height",width:"geometry.width"}}))},{"../../../utils/":120,"../getMeshMixin":72,"../primitives":74}],80:[function(e,t,i){var r=e("../primitives").registerPrimitive;r("a-light",{defaultComponents:{light:{}},mappings:{angle:"light.angle",color:"light.color","ground-color":"light.groundColor",decay:"light.decay",distance:"light.distance",intensity:"light.intensity",penumbra:"light.penumbra",type:"light.type",target:"light.target"}})},{"../primitives":74}],81:[function(e,t,i){var r=e("../getMeshMixin")(),n=e("../primitives").registerPrimitive,o=e("../../../utils/");n("a-obj-model",o.extendDeep({},r,{mappings:{src:"obj-model.obj",mtl:"obj-model.mtl"},transforms:{mtl:r.transforms.src}}))},{"../../../utils/":120,"../getMeshMixin":72,"../primitives":74}],82:[function(e,t,i){var r=e("../getMeshMixin"),n=e("../primitives").registerPrimitive,o=e("../../../utils/");n("a-sky",o.extendDeep({},r(),{defaultComponents:{geometry:{primitive:"sphere",radius:5e3,segmentsWidth:64,segmentsHeight:20},material:{color:"#FFF",shader:"flat"},scale:"-1 1 1"},mappings:{radius:"geometry.radius","segments-width":"geometry.segmentsWidth","segments-height":"geometry.segmentsHeight"}}))},{"../../../utils/":120,"../getMeshMixin":72,"../primitives":74}],83:[function(e,t,i){var r=e("../primitives").registerPrimitive;r("a-sound",{defaultComponents:{sound:{}},mappings:{src:"sound.src",on:"sound.on",autoplay:"sound.autoplay",loop:"sound.loop",volume:"sound.volume"}})},{"../primitives":74}],84:[function(e,t,i){var r=e("../getMeshMixin"),n=e("../primitives").registerPrimitive,o=e("../../../utils/");n("a-video",o.extendDeep({},r(),{defaultComponents:{geometry:{primitive:"plane"},material:{color:"#FFF",shader:"flat",side:"double",transparent:!0}},mappings:{height:"geometry.height",width:"geometry.width"}}))},{"../../../utils/":120,"../getMeshMixin":72,"../primitives":74}],85:[function(e,t,i){var r=e("../getMeshMixin"),n=e("../primitives").registerPrimitive,o=e("../../../utils/");n("a-videosphere",o.extendDeep({},r(),{defaultComponents:{geometry:{primitive:"sphere",radius:5e3,segmentsWidth:64,segmentsHeight:20},material:{color:"#FFF",shader:"flat"},scale:"-1 1 1"},mappings:{radius:"geometry.radius","segments-height":"geometry.segmentsHeight","segments-width":"geometry.segmentsWidth"}}))},{"../../../utils/":120,"../getMeshMixin":72,"../primitives":74}],86:[function(e,t,i){function r(e){return e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}var n=e("../getMeshMixin"),o=e("../../../core/geometry").geometries,a=e("../../../core/geometry").geometryNames,s=e("../primitives").registerPrimitive,c=e("../../../utils/"),u=t.exports={};a.forEach(function(e){var t=o[e],i=r(e),a={};Object.keys(t.schema).forEach(function(e){a[r(e)]="geometry."+e});var l="a-"+i,h=s(l,c.extendDeep({},n(),{defaultComponents:{geometry:{primitive:e}},mappings:a}));u[l]=h})},{"../../../core/geometry":60,"../../../utils/":120,"../getMeshMixin":72,"../primitives":74}],87:[function(e,t,i){var r=e("../core/geometry").registerGeometry,n=e("../lib/three");r("box",{schema:{depth:{"default":1,min:0},height:{"default":1,min:0},width:{"default":1,min:0},segmentsHeight:{"default":1,min:1,max:20,type:"int"},segmentsWidth:{"default":1,min:1,max:20,type:"int"},segmentsDepth:{"default":1,min:1,max:20,type:"int"}},init:function(e){this.geometry=new n.BoxGeometry(e.width,e.height,e.depth)}})},{"../core/geometry":60,"../lib/three":103}],88:[function(e,t,i){var r=e("../core/geometry").registerGeometry,n=e("../lib/three"),o=n.Math.degToRad;r("circle",{schema:{radius:{"default":1,min:0},segments:{"default":32,min:3,type:"int"},thetaLength:{"default":360,min:0},thetaStart:{"default":0}},init:function(e){this.geometry=new n.CircleGeometry(e.radius,e.segments,o(e.thetaStart),o(e.thetaLength))}})},{"../core/geometry":60,"../lib/three":103}],89:[function(e,t,i){var r=e("../core/geometry").registerGeometry,n=e("../lib/three"),o=n.Math.degToRad;r("cone",{schema:{height:{"default":1,min:0},openEnded:{"default":!1},radiusBottom:{"default":1,min:0},radiusTop:{"default":.8,min:0},segmentsHeight:{"default":18,min:1,type:"int"},segmentsRadial:{"default":36,min:3,type:"int"},thetaLength:{"default":360,min:0},thetaStart:{"default":0}},init:function(e){this.geometry=new n.CylinderGeometry(e.radiusTop,e.radiusBottom,e.height,e.segmentsRadial,e.segmentsHeight,e.openEnded,o(e.thetaStart),o(e.thetaLength))}})},{"../core/geometry":60,"../lib/three":103}],90:[function(e,t,i){var r=e("../core/geometry").registerGeometry,n=e("../lib/three"),o=n.Math.degToRad;r("cylinder",{schema:{height:{"default":1,min:0},openEnded:{"default":!1},radius:{"default":1,min:0},segmentsHeight:{"default":18,min:1,type:"int"},segmentsRadial:{"default":36,min:3,type:"int"},thetaLength:{"default":360,min:0},thetaStart:{"default":0}},init:function(e){this.geometry=new n.CylinderGeometry(e.radius,e.radius,e.height,e.segmentsRadial,e.segmentsHeight,e.openEnded,o(e.thetaStart),o(e.thetaLength))}})},{"../core/geometry":60,"../lib/three":103}],91:[function(e,t,i){var r=e("../core/geometry").registerGeometry,n=e("../lib/three");r("dodecahedron",{schema:{detail:{"default":0,min:0,max:5,type:"int"},radius:{"default":1,min:0}},init:function(e){this.geometry=new n.DodecahedronGeometry(e.radius,e.detail)}})},{"../core/geometry":60,"../lib/three":103}],92:[function(e,t,i){var r=e("../core/geometry").registerGeometry,n=e("../lib/three");r("icosahedron",{schema:{detail:{"default":0,min:0,max:5,type:"int"},radius:{"default":1,min:0}},init:function(e){this.geometry=new n.IcosahedronGeometry(e.radius,e.detail)}})},{"../core/geometry":60,"../lib/three":103}],93:[function(e,t,i){e("./box.js"),e("./circle.js"),e("./cone.js"),e("./cylinder.js"),e("./dodecahedron.js"),e("./icosahedron.js"),e("./octahedron.js"),e("./plane.js"),e("./ring.js"),e("./sphere.js"),e("./tetrahedron.js"),e("./torus.js"),e("./torusKnot.js")},{"./box.js":87,"./circle.js":88,"./cone.js":89,"./cylinder.js":90,"./dodecahedron.js":91,"./icosahedron.js":92,"./octahedron.js":94,"./plane.js":95,"./ring.js":96,"./sphere.js":97,"./tetrahedron.js":98,"./torus.js":99,"./torusKnot.js":100}],94:[function(e,t,i){var r=e("../core/geometry").registerGeometry,n=e("../lib/three");r("octahedron",{schema:{detail:{"default":0,min:0,max:5,type:"int"},radius:{"default":1,min:0}},init:function(e){this.geometry=new n.OctahedronGeometry(e.radius,e.detail)}})},{"../core/geometry":60,"../lib/three":103}],95:[function(e,t,i){var r=e("../core/geometry").registerGeometry,n=e("../lib/three");r("plane",{schema:{height:{"default":1,min:0},width:{"default":1,min:0},segmentsHeight:{"default":1,min:1,max:20,type:"int"},segmentsWidth:{"default":1,min:1,max:20,type:"int"}},init:function(e){this.geometry=new n.PlaneGeometry(e.width,e.height)}})},{"../core/geometry":60,"../lib/three":103}],96:[function(e,t,i){var r=e("../core/geometry").registerGeometry,n=e("../lib/three"),o=n.Math.degToRad;r("ring",{schema:{radiusInner:{"default":.8,min:0},radiusOuter:{"default":1.2,min:0},segmentsPhi:{"default":10,min:1,type:"int"},segmentsTheta:{"default":32,min:3,type:"int"},thetaLength:{"default":360,min:0},thetaStart:{"default":0}},init:function(e){this.geometry=new n.RingGeometry(e.radiusInner,e.radiusOuter,e.segmentsTheta,e.segmentsPhi,o(e.thetaStart),o(e.thetaLength))}})},{"../core/geometry":60,"../lib/three":103}],97:[function(e,t,i){var r=e("../core/geometry").registerGeometry,n=e("../lib/three"),o=n.Math.degToRad;r("sphere",{schema:{radius:{"default":1,min:0},phiLength:{"default":360},phiStart:{"default":0,min:0},thetaLength:{"default":180,min:0},thetaStart:{"default":0},segmentsHeight:{"default":18,min:2,type:"int"},segmentsWidth:{"default":36,min:3,type:"int"}},init:function(e){this.geometry=new n.SphereGeometry(e.radius,e.segmentsWidth,e.segmentsHeight,o(e.phiStart),o(e.phiLength),o(e.thetaStart),o(e.thetaLength)); }})},{"../core/geometry":60,"../lib/three":103}],98:[function(e,t,i){var r=e("../core/geometry").registerGeometry,n=e("../lib/three");r("tetrahedron",{schema:{detail:{"default":0,min:0,max:5,type:"int"},radius:{"default":1,min:0}},init:function(e){this.geometry=new n.TetrahedronGeometry(e.radius,e.detail)}})},{"../core/geometry":60,"../lib/three":103}],99:[function(e,t,i){var r=e("../core/geometry").registerGeometry,n=e("../lib/three"),o=n.Math.degToRad;r("torus",{schema:{arc:{"default":360},radius:{"default":1,min:0},radiusTubular:{"default":.2,min:0},segmentsRadial:{"default":36,min:2,type:"int"},segmentsTubular:{"default":32,min:3,type:"int"}},init:function(e){this.geometry=new n.TorusGeometry(e.radius,2*e.radiusTubular,e.segmentsRadial,e.segmentsTubular,o(e.arc))}})},{"../core/geometry":60,"../lib/three":103}],100:[function(e,t,i){var r=e("../core/geometry").registerGeometry,n=e("../lib/three");r("torusKnot",{schema:{p:{"default":2,min:1},q:{"default":3,min:1},radius:{"default":1,min:0},radiusTubular:{"default":.2,min:0},segmentsRadial:{"default":8,min:3,type:"int"},segmentsTubular:{"default":100,min:3,type:"int"}},init:function(e){this.geometry=new n.TorusKnotGeometry(e.radius,2*e.radiusTubular,e.segmentsTubular,e.segmentsRadial,e.p,e.q)}})},{"../core/geometry":60,"../lib/three":103}],101:[function(e,t,i){window.Promise=window.Promise||e("promise-polyfill"),window.hasNativeWebVRImplementation=!!navigator.getVRDisplays||!!navigator.getVRDevices,window.WebVRConfig=window.WebVRConfig||{BUFFER_SCALE:1,CARDBOARD_UI_DISABLED:!0,ROTATE_INSTRUCTIONS_DISABLED:!0,TOUCH_PANNER_DISABLED:!0,MOUSE_KEYBOARD_CONTROLS_DISABLED:!0},/(iphone|ipod|ipad).*os.*(7|8|9)/i.test(navigator.userAgent)&&(window.WebVRConfig.BUFFER_SCALE=1/window.devicePixelRatio),e("webvr-polyfill"),e("present"),e("./style/aframe.css"),e("./style/rStats.css");var r=e("./core/scene/a-scene"),n=e("./core/component").components,o=e("./core/component").registerComponent,a=e("./core/geometry").registerGeometry,s=e("./extras/primitives/primitives").registerPrimitive,c=e("./core/shader").registerShader,u=e("./core/system").registerSystem,l=e("./core/shader").shaders,h=e("./core/system").systems,d=window.THREE=e("./lib/three"),p=window.TWEEN=e("tween.js"),f=e("../package"),m=e("./utils/");e("./components/index"),e("./geometries/index"),e("./shaders/index"),e("./systems/index");var g=e("./core/a-node"),v=e("./core/a-entity");e("./core/a-animation"),e("./core/a-assets"),e("./core/a-cubemap"),e("./core/a-mixin"),e("./extras/components/"),e("./extras/declarative-events/"),e("./extras/primitives/"),console.log("A-Frame Version:",f.version),console.log("three Version:",f.dependencies.three),console.log("WebVR Polyfill Version:",f.dependencies["webvr-polyfill"]),t.exports=window.AFRAME={AEntity:v,ANode:g,AScene:r,components:n,geometries:e("./core/geometry").geometries,registerComponent:o,registerElement:e("./core/a-register-element").registerElement,registerGeometry:a,registerPrimitive:s,registerShader:c,registerSystem:u,primitives:{getMeshMixin:e("./extras/primitives/getMeshMixin"),primitives:e("./extras/primitives/primitives").primitives},schema:e("./core/schema"),shaders:l,systems:h,THREE:d,TWEEN:p,utils:m,version:f.version}},{"../package":20,"./components/index":27,"./core/a-animation":52,"./core/a-assets":53,"./core/a-cubemap":54,"./core/a-entity":55,"./core/a-mixin":56,"./core/a-node":57,"./core/a-register-element":58,"./core/component":59,"./core/geometry":60,"./core/scene/a-scene":62,"./core/schema":66,"./core/shader":67,"./core/system":68,"./extras/components/":69,"./extras/declarative-events/":71,"./extras/primitives/":73,"./extras/primitives/getMeshMixin":72,"./extras/primitives/primitives":74,"./geometries/index":93,"./lib/three":103,"./shaders/index":105,"./style/aframe.css":107,"./style/rStats.css":108,"./systems/index":111,"./utils/":120,present:10,"promise-polyfill":11,"tween.js":18,"webvr-polyfill":19}],102:[function(e,t,i){window.aframeStats=function(e){function t(){a("te").set(i()),a("lt").set(window.performance.getEntriesByName("render-started")[0].startTime.toFixed(0))}function i(){var e=s.querySelectorAll("*");return Array.prototype.slice.call(e).filter(function(e){return e.isEntity}),e.length}function r(){}function n(){}function o(e){a=e}var a=null,s=e,c={te:{caption:"Entities"},lt:{caption:"Load Time"}},u=[{caption:"A-Frame",values:["te","lt"]}];return{update:t,start:r,end:n,attach:o,values:c,groups:u,fractions:[]}},"object"==typeof t&&(t.exports={aframeStats:window.aframeStats})},{}],103:[function(e,t,r){(function(i){var r=i.THREE=e("three");r.TextureLoader&&(r.TextureLoader.prototype.crossOrigin="anonymous"),r.ImageLoader&&(r.ImageLoader.prototype.crossOrigin="anonymous"),r.Cache&&(r.Cache.enabled=!0),e("three/examples/js/loaders/OBJLoader"),e("three/examples/js/loaders/MTLLoader"),e("three/examples/js/BlendCharacter"),e("three/examples/js/loaders/ColladaLoader"),e("../../vendor/VRControls"),e("../../vendor/VREffect"),r.ColladaLoader.prototype.crossOrigin="anonymous",r.MTLLoader.prototype.crossOrigin="anonymous",r.OBJLoader.prototype.crossOrigin="anonymous",t.exports=r}).call(this,"undefined"!=typeof i?i:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"../../vendor/VRControls":124,"../../vendor/VREffect":125,three:17,"three/examples/js/BlendCharacter":13,"three/examples/js/loaders/ColladaLoader":14,"three/examples/js/loaders/MTLLoader":15,"three/examples/js/loaders/OBJLoader":16}],104:[function(e,t,i){function r(e){return{fog:e.fog,color:new o.Color(e.color)}}var n=e("../core/shader").registerShader,o=e("../lib/three"),a=e("../utils/");t.exports.Component=n("flat",{schema:{color:{type:"color"},fog:{"default":!0},height:{"default":256},repeat:{"default":""},src:{"default":""},width:{"default":512}},init:function(e){this.textureSrc=null,this.material=new o.MeshBasicMaterial(r(e)),a.material.updateMap(this,e)},update:function(e){this.updateMaterial(e),a.material.updateMap(this,e)},updateMaterial:function(e){var t=this.material;e=r(e),Object.keys(e).forEach(function(i){t[i]=e[i]})}})},{"../core/shader":67,"../lib/three":103,"../utils/":120}],105:[function(e,t,i){e("./flat"),e("./standard")},{"./flat":104,"./standard":106}],106:[function(e,t,i){function r(e){return{color:new o.Color(e.color),fog:e.fog,metalness:e.metalness,roughness:e.roughness}}var n=e("../core/shader").registerShader,o=e("../lib/three"),a=e("../utils/"),s=new o.CubeTextureLoader,c={};t.exports.Component=n("standard",{schema:{color:{type:"color"},envMap:{"default":""},fog:{"default":!0},height:{"default":256},metalness:{"default":0,min:0,max:1},repeat:{"default":""},roughness:{"default":.5,min:0,max:1},src:{"default":""},width:{"default":512}},init:function(e){this.material=new o.MeshStandardMaterial(r(e)),a.material.updateMap(this,e),this.updateEnvMap(e)},update:function(e){this.updateMaterial(e),a.material.updateMap(this,e),this.updateEnvMap(e)},updateMaterial:function(e){var t=this.material;e=r(e),Object.keys(e).forEach(function(i){t[i]=e[i]})},updateEnvMap:function(e){var t=this,i=this.material,r=e.envMap;return!r||this.isLoadingEnvMap?(i.envMap=null,void(i.needsUpdate=!0)):(this.isLoadingEnvMap=!0,c[r]?void c[r].then(function(e){t.isLoadingEnvMap=!1,i.envMap=e,i.needsUpdate=!0}):void(c[r]=new Promise(function(e){a.srcLoader.validateCubemapSrc(r,function(r){s.load(r,function(r){t.isLoadingEnvMap=!1,i.envMap=r,e(r)})})})))}})},{"../core/shader":67,"../lib/three":103,"../utils/":120}],107:[function(e,t,i){var r=".a-html{bottom:0;left:0;position:fixed;right:0;top:0}.a-body{height:100%;margin:0;overflow:hidden;padding:0;width:100%}:-webkit-full-screen{background-color:transparent}.a-hidden{display:none!important}.a-canvas{height:100%;left:0;position:absolute;top:0;width:100%}.a-canvas.a-grab-cursor:hover{cursor:grab;cursor:-moz-grabbing;cursor:-webkit-grab}.a-canvas.a-grab-cursor:active,.a-grabbing{cursor:grabbing;cursor:-moz-grabbing;cursor:-webkit-grabbing}// Class is removed when doing . .a-canvas.fullscreen{width:100%!important;height:100%!important;top:0!important;left:0!important;right:0!important;bottom:0!important;z-index:999999!important;position:fixed!important}a-scene{display:block;position:relative;height:100%;width:100%}a-assets,a-scene audio,a-scene img,a-scene video{display:none}.a-enter-vr-modal,.a-orientation-modal{font-family:Consolas,Andale Mono,Courier New,monospace}.a-enter-vr-modal a{border-bottom:1px solid #fff;padding:2px 0;text-decoration:none;transition:.1s color ease-in}.a-enter-vr-modal a:hover{background-color:#fff;color:#111;padding:2px 4px;position:relative;left:-4px}.a-enter-vr{font-family:sans-serif,monospace;font-size:13px;width:100%;font-weight:200;line-height:16px;height:10%;position:absolute;right:20px;bottom:20px}.a-enter-vr.embedded{right:5px;bottom:5px}.a-enter-vr-button,.a-enter-vr-modal,.a-enter-vr-modal a{color:#fff}.a-enter-vr-button{background:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20245.82%20141.73%22%3E%3Cdefs%3E%3Cstyle%3E.a%7Bfill%3A%23fff%3Bfill-rule%3Aevenodd%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Ctitle%3Emask%3C%2Ftitle%3E%3Cpath%20class%3D%22a%22%20d%3D%22M175.56%2C111.37c-22.52%2C0-40.77-18.84-40.77-42.07S153%2C27.24%2C175.56%2C27.24s40.77%2C18.84%2C40.77%2C42.07S198.08%2C111.37%2C175.56%2C111.37ZM26.84%2C69.31c0-23.23%2C18.25-42.07%2C40.77-42.07s40.77%2C18.84%2C40.77%2C42.07-18.26%2C42.07-40.77%2C42.07S26.84%2C92.54%2C26.84%2C69.31ZM27.27%2C0C11.54%2C0%2C0%2C12.34%2C0%2C28.58V110.9c0%2C16.24%2C11.54%2C30.83%2C27.27%2C30.83H99.57c2.17%2C0%2C4.19-1.83%2C5.4-3.7L116.47%2C118a8%2C8%2C0%2C0%2C1%2C12.52-.18l11.51%2C20.34c1.2%2C1.86%2C3.22%2C3.61%2C5.39%2C3.61h72.29c15.74%2C0%2C27.63-14.6%2C27.63-30.83V28.58C245.82%2C12.34%2C233.93%2C0%2C218.19%2C0H27.27Z%22%2F%3E%3C%2Fsvg%3E) 50% 50%/70% 70% no-repeat rgba(0,0,0,.35);border:0;bottom:0;cursor:pointer;min-width:50px;min-height:30px;padding-right:5%;padding-top:4%;position:absolute;right:0;transition:background-color .05s ease;-webkit-transition:background-color .05s ease;z-index:9999}.a-enter-vr-button:active,.a-enter-vr-button:hover{background-color:#666}[data-a-enter-vr-no-webvr] .a-enter-vr-button{border-color:#666;opacity:.65}[data-a-enter-vr-no-webvr] .a-enter-vr-button:active,[data-a-enter-vr-no-webvr] .a-enter-vr-button:hover{background-color:rgba(0,0,0,.35);cursor:not-allowed}.a-enter-vr-modal{background-color:#666;border-radius:0;display:none;min-height:32px;margin-right:70px;padding:9px;width:280px;right:2%;position:absolute}.a-enter-vr-modal:after{border-bottom:10px solid transparent;border-left:10px solid #666;border-top:10px solid transparent;display:inline-block;content:'';position:absolute;right:-5px;top:5px;width:0;height:0}.a-enter-vr-modal a,.a-enter-vr-modal p{display:inline}.a-enter-vr-modal p{margin:0}.a-enter-vr-modal p:after{content:' '}[data-a-enter-vr-no-headset].a-enter-vr:hover .a-enter-vr-modal,[data-a-enter-vr-no-webvr].a-enter-vr:hover .a-enter-vr-modal{display:block}.a-orientation-modal{background:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20xmlns%3Axlink%3D%22http%3A//www.w3.org/1999/xlink%22%20version%3D%221.1%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2090%2090%22%20enable-background%3D%22new%200%200%2090%2090%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpolygon%20points%3D%220%2C0%200%2C0%200%2C0%20%22%3E%3C/polygon%3E%3Cg%3E%3Cpath%20d%3D%22M71.545%2C48.145h-31.98V20.743c0-2.627-2.138-4.765-4.765-4.765H18.456c-2.628%2C0-4.767%2C2.138-4.767%2C4.765v42.789%20%20%20c0%2C2.628%2C2.138%2C4.766%2C4.767%2C4.766h5.535v0.959c0%2C2.628%2C2.138%2C4.765%2C4.766%2C4.765h42.788c2.628%2C0%2C4.766-2.137%2C4.766-4.765V52.914%20%20%20C76.311%2C50.284%2C74.173%2C48.145%2C71.545%2C48.145z%20M18.455%2C16.935h16.344c2.1%2C0%2C3.808%2C1.708%2C3.808%2C3.808v27.401H37.25V22.636%20%20%20c0-0.264-0.215-0.478-0.479-0.478H16.482c-0.264%2C0-0.479%2C0.214-0.479%2C0.478v36.585c0%2C0.264%2C0.215%2C0.478%2C0.479%2C0.478h7.507v7.644%20%20%20h-5.534c-2.101%2C0-3.81-1.709-3.81-3.81V20.743C14.645%2C18.643%2C16.354%2C16.935%2C18.455%2C16.935z%20M16.96%2C23.116h19.331v25.031h-7.535%20%20%20c-2.628%2C0-4.766%2C2.139-4.766%2C4.768v5.828h-7.03V23.116z%20M71.545%2C73.064H28.757c-2.101%2C0-3.81-1.708-3.81-3.808V52.914%20%20%20c0-2.102%2C1.709-3.812%2C3.81-3.812h42.788c2.1%2C0%2C3.809%2C1.71%2C3.809%2C3.812v16.343C75.354%2C71.356%2C73.645%2C73.064%2C71.545%2C73.064z%22%3E%3C/path%3E%3Cpath%20d%3D%22M28.919%2C58.424c-1.466%2C0-2.659%2C1.193-2.659%2C2.66c0%2C1.466%2C1.193%2C2.658%2C2.659%2C2.658c1.468%2C0%2C2.662-1.192%2C2.662-2.658%20%20%20C31.581%2C59.617%2C30.387%2C58.424%2C28.919%2C58.424z%20M28.919%2C62.786c-0.939%2C0-1.703-0.764-1.703-1.702c0-0.939%2C0.764-1.704%2C1.703-1.704%20%20%20c0.94%2C0%2C1.705%2C0.765%2C1.705%2C1.704C30.623%2C62.022%2C29.858%2C62.786%2C28.919%2C62.786z%22%3E%3C/path%3E%3Cpath%20d%3D%22M69.654%2C50.461H33.069c-0.264%2C0-0.479%2C0.215-0.479%2C0.479v20.288c0%2C0.264%2C0.215%2C0.478%2C0.479%2C0.478h36.585%20%20%20c0.263%2C0%2C0.477-0.214%2C0.477-0.478V50.939C70.131%2C50.676%2C69.917%2C50.461%2C69.654%2C50.461z%20M69.174%2C51.417V70.75H33.548V51.417H69.174z%22%3E%3C/path%3E%3Cpath%20d%3D%22M45.201%2C30.296c6.651%2C0%2C12.233%2C5.351%2C12.551%2C11.977l-3.033-2.638c-0.193-0.165-0.507-0.142-0.675%2C0.048%20%20%20c-0.174%2C0.198-0.153%2C0.501%2C0.045%2C0.676l3.883%2C3.375c0.09%2C0.075%2C0.198%2C0.115%2C0.312%2C0.115c0.141%2C0%2C0.273-0.061%2C0.362-0.166%20%20%20l3.371-3.877c0.173-0.2%2C0.151-0.502-0.047-0.675c-0.194-0.166-0.508-0.144-0.676%2C0.048l-2.592%2C2.979%20%20%20c-0.18-3.417-1.629-6.605-4.099-9.001c-2.538-2.461-5.877-3.817-9.404-3.817c-0.264%2C0-0.479%2C0.215-0.479%2C0.479%20%20%20C44.72%2C30.083%2C44.936%2C30.296%2C45.201%2C30.296z%22%3E%3C/path%3E%3C/g%3E%3C/svg%3E) center/50% 50% no-repeat rgba(244,244,244,1);bottom:0;font-size:14px;font-weight:600;left:0;line-height:20px;right:0;position:fixed;top:0;z-index:9999999}.a-orientation-modal:after{color:#666;content:\"Insert phone into Cardboard holder.\";display:block;position:absolute;text-align:center;top:70%;transform:translateY(-70%);width:100%}.a-orientation-modal button{background:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20xmlns%3Axlink%3D%22http%3A//www.w3.org/1999/xlink%22%20version%3D%221.1%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%20100%20100%22%20enable-background%3D%22new%200%200%20100%20100%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20fill%3D%22%23000000%22%20d%3D%22M55.209%2C50l17.803-17.803c1.416-1.416%2C1.416-3.713%2C0-5.129c-1.416-1.417-3.713-1.417-5.129%2C0L50.08%2C44.872%20%20L32.278%2C27.069c-1.416-1.417-3.714-1.417-5.129%2C0c-1.417%2C1.416-1.417%2C3.713%2C0%2C5.129L44.951%2C50L27.149%2C67.803%20%20c-1.417%2C1.416-1.417%2C3.713%2C0%2C5.129c0.708%2C0.708%2C1.636%2C1.062%2C2.564%2C1.062c0.928%2C0%2C1.856-0.354%2C2.564-1.062L50.08%2C55.13l17.803%2C17.802%20%20c0.708%2C0.708%2C1.637%2C1.062%2C2.564%2C1.062s1.856-0.354%2C2.564-1.062c1.416-1.416%2C1.416-3.713%2C0-5.129L55.209%2C50z%22%3E%3C/path%3E%3C/svg%3E) no-repeat;border:none;height:50px;text-indent:-9999px;width:50px}";e("browserify-css").createStyle(r,{href:"src/style/aframe.css"}),t.exports=r},{"browserify-css":1}],108:[function(e,t,i){var r=".rs-base{background-color:#333;border-radius:0;font:10px monospace;left:5px;line-height:1em;opacity:.85;overflow:hidden;padding:10px;position:fixed;top:5px;width:300px;z-index:10000}.rs-base div.hidden{display:none}.rs-base h1{color:#fff;cursor:pointer;font-size:1.4em;font-weight:300;margin:0 0 5px;padding:0}.rs-group{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-direction:column-reverse;flex-direction:column-reverse;margin-bottom:5px}.rs-group:last-child{margin-bottom:0}.rs-counter-base{align-items:center;display:-webkit-box;display:-webkit-flex;display:flex;height:10px;-webkit-justify-content:space-between;justify-content:space-between;margin:2px 0}.rs-counter-id{font-weight:300;-webkit-box-ordinal-group:0;-webkit-order:0;order:0;width:54px}.rs-counter-value{font-weight:300;-webkit-box-ordinal-group:1;-webkit-order:1;order:1;text-align:right;width:35px}.rs-canvas{-webkit-box-ordinal-group:2;-webkit-order:2;order:2}@media (min-width:480px){.rs-base{left:20px;top:20px}}";e("browserify-css").createStyle(r,{href:"src/style/rStats.css"}),t.exports=r},{"browserify-css":1}],109:[function(e,t,i){function r(e){var t,i=e.camera;i&&(t=e.querySelector("["+a+"]"),t&&e.removeChild(t))}var n=e("../constants/"),o=e("../core/system").registerSystem,a="data-aframe-default-camera",s=1.6;t.exports.System=o("camera",{init:function(){this.activeCameraEl=null,this.sceneEl.addEventListener("loaded",this.setupDefaultCamera.bind(this))},setupDefaultCamera:function(){var e,t=this.sceneEl;return t.camera?void t.emit("camera-ready",{cameraEl:t.camera.el}):(e=document.createElement("a-entity"),e.setAttribute("position","0 0 0"),e.setAttribute(a,""),e.setAttribute("camera",{active:!0,userHeight:s}),e.setAttribute("wasd-controls",""),e.setAttribute("look-controls",""),e.setAttribute(n.AFRAME_INJECTED,""),t.appendChild(e),t.addEventListener("enter-vr",this.removeDefaultOffset),t.addEventListener("exit-vr",this.addDefaultOffset),void t.emit("camera-ready",{cameraEl:e}))},disableActiveCamera:function(){var e=this.sceneEl.querySelectorAll("[camera]"),t=e[e.length-1];t.setAttribute("camera","active",!0)},setActiveCamera:function(e){var t,i,n,o,s=this.activeCameraEl,c=this.sceneEl;if(o=e.getObject3D("camera"),o&&e!==this.activeCameraEl){var u=c.querySelector("["+a+"]"),l=u&&u.querySelector("[camera]");for(e!==l&&r(c),this.activeCameraEl=e,this.activeCameraEl.play(),c.camera=o,s&&s.setAttribute("camera","active",!1),i=c.querySelectorAll("[camera]"),n=0;n0||(t=r[i],t.dispose(),delete r[i],delete o[i])))},hash:function(e){return JSON.stringify(e)}})},{"../core/geometry":60,"../core/system":68,"../lib/three":103}],111:[function(e,t,i){e("./camera"),e("./geometry"),e("./light"),e("./material"),e("./tracked-controls")},{"./camera":109,"./geometry":110,"./light":112,"./material":113,"./tracked-controls":114}],112:[function(e,t,i){var r=e("../core/system").registerSystem,n=e("../constants/"),o="data-aframe-default-light";t.exports.System=r("light",{init:function(){this.defaultLights=!1,this.userDefinedLights=!1,this.sceneEl.addEventListener("loaded",this.setupDefaultLights.bind(this))},registerLight:function(e){e.hasAttribute(o)||(this.removeDefaultLights(),this.userDefinedLights=!0)},removeDefaultLights:function(){var e,t=this.sceneEl;if(this.defaultLights){e=document.querySelectorAll("["+o+"]");for(var i=0;i0&&(e.vrDisplay=t[0])})},tick:function(){var e,t,i=navigator.getGamepads&&navigator.getGamepads(),r=this.controllers=[];if(i)for(t=0;t,