diff --git a/build/Three.js b/build/Three.js index d8e604e0..ec7a5838 100755 --- a/build/Three.js +++ b/build/Three.js @@ -404,13 +404,14 @@ c);this.translateY(this.moveVector.y*c);this.translateZ(this.moveVector.z*c);thi -this.moveState.left+this.moveState.right;this.moveVector.y=-this.moveState.down+this.moveState.up;this.moveVector.z=-c+this.moveState.back};this.updateRotationVector=function(){this.rotationVector.x=-this.moveState.pitchDown+this.moveState.pitchUp;this.rotationVector.y=-this.moveState.yawRight+this.moveState.yawLeft;this.rotationVector.z=-this.moveState.rollRight+this.moveState.rollLeft};this.getContainerDimensions=function(){return this.domElement!=document?{size:[this.domElement.offsetWidth,this.domElement.offsetHeight], offset:[this.domElement.offsetLeft,this.domElement.offsetTop]}:{size:[window.innerWidth,window.innerHeight],offset:[0,0]}};this.domElement.addEventListener("mousemove",d(this,this.mousemove),!1);this.domElement.addEventListener("mousedown",d(this,this.mousedown),!1);this.domElement.addEventListener("mouseup",d(this,this.mouseup),!1);window.addEventListener("keydown",d(this,this.keydown),!1);window.addEventListener("keyup",d(this,this.keyup),!1);this.updateMovementVector();this.updateRotationVector()}; THREE.FlyCamera.prototype=new THREE.Camera;THREE.FlyCamera.prototype.constructor=THREE.FlyCamera;THREE.FlyCamera.prototype.supr=THREE.Camera.prototype; -THREE.RollCamera=function(b,d,c,f){THREE.Camera.call(this,b,d,c,f);this.mouseLook=!0;this.autoForward=!1;this.rollSpeed=this.movementSpeed=this.lookSpeed=1;this.domElement=document;this.useTarget=!1;this.matrixAutoUpdate=!1;this.forward=new THREE.Vector3(0,0,1);this.roll=0;this.lastUpdate=(new Date).getTime();this.delta=0;var g=new THREE.Vector3,h=new THREE.Vector3,j=new THREE.Vector3,k=new THREE.Matrix4,m=!1,o=1,p=0,t=0,v=0,u=0,B=0,F=window.innerWidth/2,V=window.innerHeight/2;this.update=function(){var A= -(new Date).getTime();this.delta=(A-this.lastUpdate)/1E3;this.lastUpdate=A;if(this.mouseLook){A=this.delta*this.lookSpeed;this.rotateHorizontally(A*u);this.rotateVertically(A*B)}A=this.delta*this.movementSpeed;this.translateZ(A*(p>0||this.autoForward&&!(p<0)?1:p));this.translateX(A*t);this.translateY(A*v);m&&(this.roll+=this.rollSpeed*this.delta*o);if(this.forward.y>0.9){this.forward.y=0.9;this.forward.normalize()}else if(this.forward.y<-0.9){this.forward.y=-0.9;this.forward.normalize()}j.copy(this.forward); -h.set(0,1,0);g.cross(h,j).normalize();h.cross(j,g).normalize();this.matrix.n11=g.x;this.matrix.n12=h.x;this.matrix.n13=j.x;this.matrix.n21=g.y;this.matrix.n22=h.y;this.matrix.n23=j.y;this.matrix.n31=g.z;this.matrix.n32=h.z;this.matrix.n33=j.z;k.identity();k.n11=Math.cos(this.roll);k.n12=-Math.sin(this.roll);k.n21=Math.sin(this.roll);k.n22=Math.cos(this.roll);this.matrix.multiplySelf(k);this.matrixWorldNeedsUpdate=!0;this.matrix.n14=this.position.x;this.matrix.n24=this.position.y;this.matrix.n34=this.position.z; -this.supr.update.call(this)};this.translateX=function(A){this.position.x+=this.matrix.n11*A;this.position.y+=this.matrix.n21*A;this.position.z+=this.matrix.n31*A};this.translateY=function(A){this.position.x+=this.matrix.n12*A;this.position.y+=this.matrix.n22*A;this.position.z+=this.matrix.n32*A};this.translateZ=function(A){this.position.x-=this.matrix.n13*A;this.position.y-=this.matrix.n23*A;this.position.z-=this.matrix.n33*A};this.rotateHorizontally=function(A){g.set(this.matrix.n11,this.matrix.n21, -this.matrix.n31);g.multiplyScalar(A);this.forward.subSelf(g);this.forward.normalize()};this.rotateVertically=function(A){h.set(this.matrix.n12,this.matrix.n22,this.matrix.n32);h.multiplyScalar(A);this.forward.addSelf(h);this.forward.normalize()};this.domElement.addEventListener("contextmenu",function(A){A.preventDefault()},!1);this.domElement.addEventListener("mousemove",function(A){u=(A.clientX-F)/window.innerWidth;B=(A.clientY-V)/window.innerHeight},!1);this.domElement.addEventListener("mousedown", -function(A){A.preventDefault();A.stopPropagation();switch(A.button){case 0:p=1;break;case 2:p=-1}},!1);this.domElement.addEventListener("mouseup",function(A){A.preventDefault();A.stopPropagation();switch(A.button){case 0:p=0;break;case 2:p=0}},!1);this.domElement.addEventListener("keydown",function(A){switch(A.keyCode){case 38:case 87:p=1;break;case 37:case 65:t=-1;break;case 40:case 83:p=-1;break;case 39:case 68:t=1;break;case 81:m=!0;o=1;break;case 69:m=!0;o=-1;break;case 82:v=1;break;case 70:v= --1}},!1);this.domElement.addEventListener("keyup",function(A){switch(A.keyCode){case 38:case 87:p=0;break;case 37:case 65:t=0;break;case 40:case 83:p=0;break;case 39:case 68:t=0;break;case 81:m=!1;break;case 69:m=!1;break;case 82:v=0;break;case 70:v=0}},!1)};THREE.RollCamera.prototype=new THREE.Camera;THREE.RollCamera.prototype.constructor=THREE.RollCamera;THREE.RollCamera.prototype.supr=THREE.Camera.prototype; +THREE.RollCamera=function(b,d,c,f){THREE.Camera.call(this,b,d,c,f);this.mouseLook=!0;this.autoForward=!1;this.rollSpeed=this.movementSpeed=this.lookSpeed=1;this.constrainVertical=[-0.9,0.9];this.domElement=document;this.useTarget=!1;this.matrixAutoUpdate=!1;this.forward=new THREE.Vector3(0,0,1);this.roll=0;this.lastUpdate=(new Date).getTime();this.delta=0;var g=new THREE.Vector3,h=new THREE.Vector3,j=new THREE.Vector3,k=new THREE.Matrix4,m=!1,o=1,p=0,t=0,v=0,u=0,B=0,F=window.innerWidth/2,V=window.innerHeight/ +2;this.update=function(){var A=(new Date).getTime();this.delta=(A-this.lastUpdate)/1E3;this.lastUpdate=A;if(this.mouseLook){A=this.delta*this.lookSpeed;this.rotateHorizontally(A*u);this.rotateVertically(A*B)}A=this.delta*this.movementSpeed;this.translateZ(A*(p>0||this.autoForward&&!(p<0)?1:p));this.translateX(A*t);this.translateY(A*v);m&&(this.roll+=this.rollSpeed*this.delta*o);if(this.forward.y>this.constrainVertical[1]){this.forward.y=this.constrainVertical[1];this.forward.normalize()}else if(this.forward.y< +this.constrainVertical[0]){this.forward.y=this.constrainVertical[0];this.forward.normalize()}j.copy(this.forward);h.set(0,1,0);g.cross(h,j).normalize();h.cross(j,g).normalize();this.matrix.n11=g.x;this.matrix.n12=h.x;this.matrix.n13=j.x;this.matrix.n21=g.y;this.matrix.n22=h.y;this.matrix.n23=j.y;this.matrix.n31=g.z;this.matrix.n32=h.z;this.matrix.n33=j.z;k.identity();k.n11=Math.cos(this.roll);k.n12=-Math.sin(this.roll);k.n21=Math.sin(this.roll);k.n22=Math.cos(this.roll);this.matrix.multiplySelf(k); +this.matrixWorldNeedsUpdate=!0;this.matrix.n14=this.position.x;this.matrix.n24=this.position.y;this.matrix.n34=this.position.z;this.supr.update.call(this)};this.translateX=function(A){this.position.x+=this.matrix.n11*A;this.position.y+=this.matrix.n21*A;this.position.z+=this.matrix.n31*A};this.translateY=function(A){this.position.x+=this.matrix.n12*A;this.position.y+=this.matrix.n22*A;this.position.z+=this.matrix.n32*A};this.translateZ=function(A){this.position.x-=this.matrix.n13*A;this.position.y-= +this.matrix.n23*A;this.position.z-=this.matrix.n33*A};this.rotateHorizontally=function(A){g.set(this.matrix.n11,this.matrix.n21,this.matrix.n31);g.multiplyScalar(A);this.forward.subSelf(g);this.forward.normalize()};this.rotateVertically=function(A){h.set(this.matrix.n12,this.matrix.n22,this.matrix.n32);h.multiplyScalar(A);this.forward.addSelf(h);this.forward.normalize()};this.domElement.addEventListener("contextmenu",function(A){A.preventDefault()},!1);this.domElement.addEventListener("mousemove", +function(A){u=(A.clientX-F)/window.innerWidth;B=(A.clientY-V)/window.innerHeight},!1);this.domElement.addEventListener("mousedown",function(A){A.preventDefault();A.stopPropagation();switch(A.button){case 0:p=1;break;case 2:p=-1}},!1);this.domElement.addEventListener("mouseup",function(A){A.preventDefault();A.stopPropagation();switch(A.button){case 0:p=0;break;case 2:p=0}},!1);this.domElement.addEventListener("keydown",function(A){switch(A.keyCode){case 38:case 87:p=1;break;case 37:case 65:t=-1;break; +case 40:case 83:p=-1;break;case 39:case 68:t=1;break;case 81:m=!0;o=1;break;case 69:m=!0;o=-1;break;case 82:v=1;break;case 70:v=-1}},!1);this.domElement.addEventListener("keyup",function(A){switch(A.keyCode){case 38:case 87:p=0;break;case 37:case 65:t=0;break;case 40:case 83:p=0;break;case 39:case 68:t=0;break;case 81:m=!1;break;case 69:m=!1;break;case 82:v=0;break;case 70:v=0}},!1)};THREE.RollCamera.prototype=new THREE.Camera;THREE.RollCamera.prototype.constructor=THREE.RollCamera; +THREE.RollCamera.prototype.supr=THREE.Camera.prototype; THREE.Cube=function(b,d,c,f,g,h,j,k,m){function o(V,A,S,D,Y,J,L,oa){var ja,ra,va=f||1,X=g||1,e=Y/2,na=J/2,za=p.vertices.length;if(V=="x"&&A=="y"||V=="y"&&A=="x")ja="z";else if(V=="x"&&A=="z"||V=="z"&&A=="x"){ja="y";X=h||1}else if(V=="z"&&A=="y"||V=="y"&&A=="z"){ja="x";va=h||1}var wa=va+1,Da=X+1;Y/=va;var ka=J/X;for(ra=0;ra0||this.autoForward&&!(k<0)?1:k));this.translateX(n*t);this.translateY(n*m);j&&(this.roll+=this.rollSpeed*this.delta*l);if(this.forward.y>0.9){this.forward.y=0.9;this.forward.normalize()}else if(this.forward.y<-0.9){this.forward.y=-0.9;this.forward.normalize()}g.copy(this.forward); -f.set(0,1,0);c.cross(f,g).normalize();f.cross(g,c).normalize();this.matrix.n11=c.x;this.matrix.n12=f.x;this.matrix.n13=g.x;this.matrix.n21=c.y;this.matrix.n22=f.y;this.matrix.n23=g.y;this.matrix.n31=c.z;this.matrix.n32=f.z;this.matrix.n33=g.z;h.identity();h.n11=Math.cos(this.roll);h.n12=-Math.sin(this.roll);h.n21=Math.sin(this.roll);h.n22=Math.cos(this.roll);this.matrix.multiplySelf(h);this.matrixWorldNeedsUpdate=!0;this.matrix.n14=this.position.x;this.matrix.n24=this.position.y;this.matrix.n34=this.position.z; -this.supr.update.call(this)};this.translateX=function(n){this.position.x+=this.matrix.n11*n;this.position.y+=this.matrix.n21*n;this.position.z+=this.matrix.n31*n};this.translateY=function(n){this.position.x+=this.matrix.n12*n;this.position.y+=this.matrix.n22*n;this.position.z+=this.matrix.n32*n};this.translateZ=function(n){this.position.x-=this.matrix.n13*n;this.position.y-=this.matrix.n23*n;this.position.z-=this.matrix.n33*n};this.rotateHorizontally=function(n){c.set(this.matrix.n11,this.matrix.n21, -this.matrix.n31);c.multiplyScalar(n);this.forward.subSelf(c);this.forward.normalize()};this.rotateVertically=function(n){f.set(this.matrix.n12,this.matrix.n22,this.matrix.n32);f.multiplyScalar(n);this.forward.addSelf(f);this.forward.normalize()};this.domElement.addEventListener("contextmenu",function(n){n.preventDefault()},!1);this.domElement.addEventListener("mousemove",function(n){p=(n.clientX-w)/window.innerWidth;y=(n.clientY-B)/window.innerHeight},!1);this.domElement.addEventListener("mousedown", -function(n){n.preventDefault();n.stopPropagation();switch(n.button){case 0:k=1;break;case 2:k=-1}},!1);this.domElement.addEventListener("mouseup",function(n){n.preventDefault();n.stopPropagation();switch(n.button){case 0:k=0;break;case 2:k=0}},!1);this.domElement.addEventListener("keydown",function(n){switch(n.keyCode){case 38:case 87:k=1;break;case 37:case 65:t=-1;break;case 40:case 83:k=-1;break;case 39:case 68:t=1;break;case 81:j=!0;l=1;break;case 69:j=!0;l=-1;break;case 82:m=1;break;case 70:m= --1}},!1);this.domElement.addEventListener("keyup",function(n){switch(n.keyCode){case 38:case 87:k=0;break;case 37:case 65:t=0;break;case 40:case 83:k=0;break;case 39:case 68:t=0;break;case 81:j=!1;break;case 69:j=!1;break;case 82:m=0;break;case 70:m=0}},!1)};THREE.RollCamera.prototype=new THREE.Camera;THREE.RollCamera.prototype.constructor=THREE.RollCamera;THREE.RollCamera.prototype.supr=THREE.Camera.prototype; +THREE.RollCamera=function(a,d,b,e){THREE.Camera.call(this,a,d,b,e);this.mouseLook=!0;this.autoForward=!1;this.rollSpeed=this.movementSpeed=this.lookSpeed=1;this.constrainVertical=[-0.9,0.9];this.domElement=document;this.useTarget=!1;this.matrixAutoUpdate=!1;this.forward=new THREE.Vector3(0,0,1);this.roll=0;this.lastUpdate=(new Date).getTime();this.delta=0;var c=new THREE.Vector3,f=new THREE.Vector3,g=new THREE.Vector3,h=new THREE.Matrix4,j=!1,l=1,k=0,t=0,m=0,p=0,y=0,w=window.innerWidth/2,B=window.innerHeight/ +2;this.update=function(){var n=(new Date).getTime();this.delta=(n-this.lastUpdate)/1E3;this.lastUpdate=n;if(this.mouseLook){n=this.delta*this.lookSpeed;this.rotateHorizontally(n*p);this.rotateVertically(n*y)}n=this.delta*this.movementSpeed;this.translateZ(n*(k>0||this.autoForward&&!(k<0)?1:k));this.translateX(n*t);this.translateY(n*m);j&&(this.roll+=this.rollSpeed*this.delta*l);if(this.forward.y>this.constrainVertical[1]){this.forward.y=this.constrainVertical[1];this.forward.normalize()}else if(this.forward.y< +this.constrainVertical[0]){this.forward.y=this.constrainVertical[0];this.forward.normalize()}g.copy(this.forward);f.set(0,1,0);c.cross(f,g).normalize();f.cross(g,c).normalize();this.matrix.n11=c.x;this.matrix.n12=f.x;this.matrix.n13=g.x;this.matrix.n21=c.y;this.matrix.n22=f.y;this.matrix.n23=g.y;this.matrix.n31=c.z;this.matrix.n32=f.z;this.matrix.n33=g.z;h.identity();h.n11=Math.cos(this.roll);h.n12=-Math.sin(this.roll);h.n21=Math.sin(this.roll);h.n22=Math.cos(this.roll);this.matrix.multiplySelf(h); +this.matrixWorldNeedsUpdate=!0;this.matrix.n14=this.position.x;this.matrix.n24=this.position.y;this.matrix.n34=this.position.z;this.supr.update.call(this)};this.translateX=function(n){this.position.x+=this.matrix.n11*n;this.position.y+=this.matrix.n21*n;this.position.z+=this.matrix.n31*n};this.translateY=function(n){this.position.x+=this.matrix.n12*n;this.position.y+=this.matrix.n22*n;this.position.z+=this.matrix.n32*n};this.translateZ=function(n){this.position.x-=this.matrix.n13*n;this.position.y-= +this.matrix.n23*n;this.position.z-=this.matrix.n33*n};this.rotateHorizontally=function(n){c.set(this.matrix.n11,this.matrix.n21,this.matrix.n31);c.multiplyScalar(n);this.forward.subSelf(c);this.forward.normalize()};this.rotateVertically=function(n){f.set(this.matrix.n12,this.matrix.n22,this.matrix.n32);f.multiplyScalar(n);this.forward.addSelf(f);this.forward.normalize()};this.domElement.addEventListener("contextmenu",function(n){n.preventDefault()},!1);this.domElement.addEventListener("mousemove", +function(n){p=(n.clientX-w)/window.innerWidth;y=(n.clientY-B)/window.innerHeight},!1);this.domElement.addEventListener("mousedown",function(n){n.preventDefault();n.stopPropagation();switch(n.button){case 0:k=1;break;case 2:k=-1}},!1);this.domElement.addEventListener("mouseup",function(n){n.preventDefault();n.stopPropagation();switch(n.button){case 0:k=0;break;case 2:k=0}},!1);this.domElement.addEventListener("keydown",function(n){switch(n.keyCode){case 38:case 87:k=1;break;case 37:case 65:t=-1;break; +case 40:case 83:k=-1;break;case 39:case 68:t=1;break;case 81:j=!0;l=1;break;case 69:j=!0;l=-1;break;case 82:m=1;break;case 70:m=-1}},!1);this.domElement.addEventListener("keyup",function(n){switch(n.keyCode){case 38:case 87:k=0;break;case 37:case 65:t=0;break;case 40:case 83:k=0;break;case 39:case 68:t=0;break;case 81:j=!1;break;case 69:j=!1;break;case 82:m=0;break;case 70:m=0}},!1)};THREE.RollCamera.prototype=new THREE.Camera;THREE.RollCamera.prototype.constructor=THREE.RollCamera; +THREE.RollCamera.prototype.supr=THREE.Camera.prototype; THREE.Cube=function(a,d,b,e,c,f,g,h,j){function l(B,n,x,o,D,z,G,K){var H,J,L=e||1,E=c||1,R=D/2,S=z/2,N=k.vertices.length;if(B=="x"&&n=="y"||B=="y"&&n=="x")H="z";else if(B=="x"&&n=="z"||B=="z"&&n=="x"){H="y";E=f||1}else if(B=="z"&&n=="y"||B=="y"&&n=="z"){H="x";L=f||1}var M=L+1,T=E+1;D/=L;var U=z/E;for(J=0;J 0.9 ) { + if( this.forward.y > this.constrainVertical[ 1 ] ) { - this.forward.y = 0.9; + this.forward.y = this.constrainVertical[ 1 ]; this.forward.normalize(); - } else if( this.forward.y < -0.9 ) { + } else if( this.forward.y < this.constrainVertical[ 0 ] ) { - this.forward.y = -0.9; + this.forward.y = this.constrainVertical[ 0 ]; this.forward.normalize(); } diff --git a/src/renderers/WebGLRenderer.js b/src/renderers/WebGLRenderer.js index 58598199..8abf6f3d 100644 --- a/src/renderers/WebGLRenderer.js +++ b/src/renderers/WebGLRenderer.js @@ -72,9 +72,9 @@ THREE.WebGLRenderer = function ( parameters ) { parameters = parameters || {}; - stencil = parameters.stencil !== undefined ? parameters.stencil : true; - antialias = parameters.antialias !== undefined ? parameters.antialias : false; - clearColor = parameters.clearColor !== undefined ? new THREE.Color( parameters.clearColor ) : new THREE.Color( 0x000000 ); + stencil = parameters.stencil !== undefined ? parameters.stencil : true, + antialias = parameters.antialias !== undefined ? parameters.antialias : false, + clearColor = parameters.clearColor !== undefined ? new THREE.Color( parameters.clearColor ) : new THREE.Color( 0x000000 ), clearAlpha = parameters.clearAlpha !== undefined ? parameters.clearAlpha : 0; this.data = { @@ -82,7 +82,7 @@ THREE.WebGLRenderer = function ( parameters ) { vertices: 0, faces: 0 - } + }; this.maxMorphTargets = 8; this.domElement = _canvas;