!function(t){function e(n){if(i[n])return i[n].exports;var r=i[n]={exports:{},id:n,loaded:!1};return t[n].call(r.exports,r,r.exports,e),r.loaded=!0,r.exports}var i={};return e.m=t,e.c=i,e.p="",e(0)}([function(t,e,i){var n=i(1),r=i(2);if("undefined"==typeof AFRAME)throw new Error("Component attempted to register before AFRAME was available.");AFRAME.registerComponent("teleport-controls",{schema:{type:{default:"parabolic",oneOf:["parabolic","line"]},button:{default:"trackpad",oneOf:["trackpad","trigger","grip","menu"]},collisionEntities:{type:"selectorAll"},hitEntity:{type:"selector"},hitCylinderColor:{type:"color",default:"#99ff99"},hitCylinderRadius:{default:.25,min:0},hitCylinderHeight:{default:.3,min:0},maxLength:{default:10,min:0,if:{type:["line"]}},curveNumberPoints:{default:30,min:2,if:{type:["parabolic"]}},curveLineWidth:{default:.025},curveHitColor:{type:"color",default:"#99ff99"},curveMissColor:{type:"color",default:"#ff0000"},curveShootingSpeed:{default:5,min:0,if:{type:["parabolic"]}},landingNormal:{type:"vec3",default:"0 1 0"},landingMaxAngle:{default:"45",min:0,max:360}},init:function(){this.active=!1,this.obj=this.el.object3D,this.hitPoint=new THREE.Vector3,this.hit=!1,this.prevHeightDiff=0,this.referenceNormal=new THREE.Vector3,this.curveMissColor=new THREE.Color,this.curveHitColor=new THREE.Color,this.raycaster=new THREE.Raycaster,this.defaultPlane=this.createDefaultPlane(),this.teleportEntity=document.createElement("a-entity"),this.teleportEntity.className="teleport-ray",this.teleportEntity.setAttribute("visible",!1),this.el.sceneEl.appendChild(this.teleportEntity),this.el.addEventListener(this.data.button+"down",this.onButtonDown.bind(this)),this.el.addEventListener(this.data.button+"up",this.onButtonUp.bind(this))},onButtonDown:function(t){this.active=!0},onButtonUp:function(t){if(this.active&&(this.active=!1,this.hitEntity.setAttribute("visible",!1),this.teleportEntity.setAttribute("visible",!1),this.hit)){var e=this.el.sceneEl.camera.el,i=(new THREE.Vector3).copy(e.getAttribute("position")),n=i.y+this.hitPoint.y-this.prevHeightDiff,r=new THREE.Vector3(this.hitPoint.x,n,this.hitPoint.z);this.prevHeightDiff=this.hitPoint.y,e.setAttribute("position",r);for(var s=document.querySelectorAll("a-entity[tracked-controls]"),o=0;o0&&!this.hit&&this.isValidNormalsAngle(n[0].face.normal)){var r=n[0].point;this.line.material.color.set(this.curveHitColor),this.hitEntity.setAttribute("position",r),this.hitEntity.setAttribute("visible",!0),this.hit=!0,this.hitPoint.copy(n[0].point);for(var s=t;s