this._x+this._y*this._y+this._z*this._z+this._w*this._w)},normalize:function(){vara=this.length();0===a?(this._z=this._y=this._x=0,this._w=1):(a=1/a,this._x*=a,this._y*=a,this._z*=a,this._w*=a);returnthis},multiply:function(a,b){returnvoid0!==b?(console.warn("DEPRECATED: Quaternion's .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead."),this.multiplyQuaternions(a,b)):this.multiplyQuaternions(this,a)},multiplyQuaternions:function(a,b){varc=a._x,d=a._y,e=a._z,f=
this._x+this._y*this._y+this._z*this._z+this._w*this._w)},normalize:function(){vara=this.length();0===a?(this._z=this._y=this._x=0,this._w=1):(a=1/a,this._x*=a,this._y*=a,this._z*=a,this._w*=a);returnthis},multiply:function(a,b){returnvoid0!==b?(console.warn("DEPRECATED: Quaternion's .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead."),this.multiplyQuaternions(a,b)):this.multiplyQuaternions(this,a)},multiplyQuaternions:function(a,b){varc=a._x,d=a._y,e=a._z,f=
a._w,h=b._x,g=b._y,i=b._z,k=b._w;this._x=c*k+f*h+d*i-e*g;this._y=d*k+f*g+e*h-c*i;this._z=e*k+f*i+c*g-d*h;this._w=f*k-c*h-d*g-e*i;this._updateEuler();returnthis},multiplyVector3:function(a){console.warn("DEPRECATED: Quaternion's .multiplyVector3() has been removed. Use is now vector.applyQuaternion( quaternion ) instead.");returna.applyQuaternion(this)},slerp:function(a,b){varc=this._x,d=this._y,e=this._z,f=this._w,h=f*a._w+c*a._x+d*a._y+e*a._z;0>h?(this._w=-a._w,this._x=-a._x,this._y=-a._y,this._z=
a._w,h=b._x,g=b._y,i=b._z,k=b._w;this._x=c*k+f*h+d*i-e*g;this._y=d*k+f*g+e*h-c*i;this._z=e*k+f*i+c*g-d*h;this._w=f*k-c*h-d*g-e*i;this._updateEuler();returnthis},multiplyVector3:function(a){console.warn("DEPRECATED: Quaternion's .multiplyVector3() has been removed. Use is now vector.applyQuaternion( quaternion ) instead.");returna.applyQuaternion(this)},slerp:function(a,b){varc=this._x,d=this._y,e=this._z,f=this._w,h=f*a._w+c*a._x+d*a._y+e*a._z;0>h?(this._w=-a._w,this._x=-a._x,this._y=-a._y,this._z=
THREE.Vector2.prototype={constructor:THREE.Vector2,set:function(a,b){this.x=a;this.y=b;returnthis},setX:function(a){this.x=a;returnthis},setY:function(a){this.y=a;returnthis},setComponent:function(a,b){switch(a){case0:this.x=b;break;case1:this.y=b;break;default:throwError("index is out of range: "+a);}},getComponent:function(a){switch(a){case0:returnthis.x;case1:returnthis.y;default:throwError("index is out of range: "+a);}},copy:function(a){this.x=a.x;this.y=a.y;returnthis},add:function(a,
THREE.Vector2.prototype={constructor:THREE.Vector2,set:function(a,b){this.x=a;this.y=b;returnthis},setX:function(a){this.x=a;returnthis},setY:function(a){this.y=a;returnthis},setComponent:function(a,b){switch(a){case0:this.x=b;break;case1:this.y=b;break;default:throwError("index is out of range: "+a);}},getComponent:function(a){switch(a){case0:returnthis.x;case1:returnthis.y;default:throwError("index is out of range: "+a);}},copy:function(a){this.x=a.x;this.y=a.y;returnthis},add:function(a,
b){if(void0!==b)returnconsole.warn("DEPRECATED: Vector2's .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(a,b);this.x+=a.x;this.y+=a.y;returnthis},addVectors:function(a,b){this.x=a.x+b.x;this.y=a.y+b.y;returnthis},addScalar:function(a){this.x+=a;this.y+=a;returnthis},sub:function(a,b){if(void0!==b)returnconsole.warn("DEPRECATED: Vector2's .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(a,b);this.x-=a.x;this.y-=
b){if(void0!==b)returnconsole.warn("DEPRECATED: Vector2's .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(a,b);this.x+=a.x;this.y+=a.y;returnthis},addVectors:function(a,b){this.x=a.x+b.x;this.y=a.y+b.y;returnthis},addScalar:function(a){this.x+=a;this.y+=a;returnthis},sub:function(a,b){if(void0!==b)returnconsole.warn("DEPRECATED: Vector2's .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(a,b);this.x-=a.x;this.y-=
addVectors:function(a,b){this.x=a.x+b.x;this.y=a.y+b.y;this.z=a.z+b.z;this.w=a.w+b.w;returnthis},sub:function(a,b){if(void0!==b)returnconsole.warn("DEPRECATED: Vector4's .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(a,b);this.x-=a.x;this.y-=a.y;this.z-=a.z;this.w-=a.w;returnthis},subVectors:function(a,b){this.x=a.x-b.x;this.y=a.y-b.y;this.z=a.z-b.z;this.w=a.w-b.w;returnthis},multiplyScalar:function(a){this.x*=a;this.y*=a;this.z*=a;this.w*=a;returnthis},
addVectors:function(a,b){this.x=a.x+b.x;this.y=a.y+b.y;this.z=a.z+b.z;this.w=a.w+b.w;returnthis},sub:function(a,b){if(void0!==b)returnconsole.warn("DEPRECATED: Vector4's .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(a,b);this.x-=a.x;this.y-=a.y;this.z-=a.z;this.w-=a.w;returnthis},subVectors:function(a,b){this.x=a.x-b.x;this.y=a.y-b.y;this.z=a.z-b.z;this.w=a.w-b.w;returnthis},multiplyScalar:function(a){this.x*=a;this.y*=a;this.z*=a;this.w*=a;returnthis},
clone:function(){return(newTHREE.Triangle).copy(this)}};THREE.Vertex=function(a){console.warn("THREE.Vertex has been DEPRECATED. Use THREE.Vector3 instead.");returna};THREE.UV=function(a,b){console.warn("THREE.UV has been DEPRECATED. Use THREE.Vector2 instead.");returnnewTHREE.Vector2(a,b)};THREE.Clock=function(a){this.autoStart=void0!==a?a:!0;this.elapsedTime=this.oldTime=this.startTime=0;this.running=!1};
clone:function(){return(newTHREE.Triangle).copy(this)}};THREE.Vertex=function(a){console.warn("THREE.Vertex has been DEPRECATED. Use THREE.Vector3 instead.");returna};THREE.UV=function(a,b){console.warn("THREE.UV has been DEPRECATED. Use THREE.Vector2 instead.");returnnewTHREE.Vector2(a,b)};THREE.Clock=function(a){this.autoStart=void0!==a?a:!0;this.elapsedTime=this.oldTime=this.startTime=0;this.running=!1};
M);Q=ba.dot(i[a]);N=0>Q?-1:1;h[4*a]=J.x;h[4*a+1]=J.y;h[4*a+2]=J.z;h[4*a+3]=N}if(void0===this.attributes.index||void0===this.attributes.position||void0===this.attributes.normal||void0===this.attributes.uv)console.warn("Missing required attributes (index, position, normal or uv) in BufferGeometry.computeTangents()");else{varb=this.attributes.index.array,c=this.attributes.position.array,d=this.attributes.normal.array,e=this.attributes.uv.array,f=c.length/3;void0===this.attributes.tangent&&(this.attributes.tangent=
ba.crossVectors(pa,M);Q=ba.dot(i[a]);N=0>Q?-1:1;h[4*a]=J.x;h[4*a+1]=J.y;h[4*a+2]=J.z;h[4*a+3]=N}if(void0===this.attributes.index||void0===this.attributes.position||void0===this.attributes.normal||void0===this.attributes.uv)console.warn("Missing required attributes (index, position, normal or uv) in BufferGeometry.computeTangents()");else{varb=this.attributes.index.array,c=this.attributes.position.array,d=this.attributes.normal.array,e=this.attributes.uv.array,f=c.length/3;void0===this.attributes.tangent&&