|
@@ -22,18 +22,18 @@ THREE.Matrix3=function(){this.m=[]};THREE.Matrix3.prototype={transpose:function(
|
|
|
THREE.Matrix4=function(a,b,d,f,h,n,l,q,m,w,A,y,D,E,F,H){this.set(a||1,b||0,d||0,f||0,h||0,n||1,l||0,q||0,m||0,w||0,A||1,y||0,D||0,E||0,F||0,H||1);this.flat=Array(16);this.m33=new THREE.Matrix3};
|
|
|
THREE.Matrix4.prototype={set:function(a,b,d,f,h,n,l,q,m,w,A,y,D,E,F,H){this.n11=a;this.n12=b;this.n13=d;this.n14=f;this.n21=h;this.n22=n;this.n23=l;this.n24=q;this.n31=m;this.n32=w;this.n33=A;this.n34=y;this.n41=D;this.n42=E;this.n43=F;this.n44=H;return this},identity:function(){this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1);return this},copy:function(a){this.set(a.n11,a.n12,a.n13,a.n14,a.n21,a.n22,a.n23,a.n24,a.n31,a.n32,a.n33,a.n34,a.n41,a.n42,a.n43,a.n44);return this},lookAt:function(a,b,d){var f=THREE.Matrix4.__v1,
|
|
|
h=THREE.Matrix4.__v2,n=THREE.Matrix4.__v3;n.sub(a,b).normalize();f.cross(d,n).normalize();h.cross(n,f).normalize();this.n11=f.x;this.n12=h.x;this.n13=n.x;this.n21=f.y;this.n22=h.y;this.n23=n.y;this.n31=f.z;this.n32=h.z;this.n33=n.z;return this},multiplyVector3:function(a){var b=a.x,d=a.y,f=a.z,h=1/(this.n41*b+this.n42*d+this.n43*f+this.n44);a.x=(this.n11*b+this.n12*d+this.n13*f+this.n14)*h;a.y=(this.n21*b+this.n22*d+this.n23*f+this.n24)*h;a.z=(this.n31*b+this.n32*d+this.n33*f+this.n34)*h;return a},
|
|
|
-multiplyVector3OnlyZ:function(a){var b=a.x,d=a.y;a=a.z;return(this.n31*b+this.n32*d+this.n33*a+this.n34)*(1/(this.n41*b+this.n42*d+this.n43*a+this.n44))},multiplyVector4:function(a){var b=a.x,d=a.y,f=a.z,h=a.w;a.x=this.n11*b+this.n12*d+this.n13*f+this.n14*h;a.y=this.n21*b+this.n22*d+this.n23*f+this.n24*h;a.z=this.n31*b+this.n32*d+this.n33*f+this.n34*h;a.w=this.n41*b+this.n42*d+this.n43*f+this.n44*h;return a},rotateAxis:function(a){var b=a.x,d=a.y,f=a.z;a.x=b*this.n11+d*this.n12+f*this.n13;a.y=b*this.n21+
|
|
|
-d*this.n22+f*this.n23;a.z=b*this.n31+d*this.n32+f*this.n33;a.normalize();return a},crossVector:function(a){var b=new THREE.Vector4;b.x=this.n11*a.x+this.n12*a.y+this.n13*a.z+this.n14*a.w;b.y=this.n21*a.x+this.n22*a.y+this.n23*a.z+this.n24*a.w;b.z=this.n31*a.x+this.n32*a.y+this.n33*a.z+this.n34*a.w;b.w=a.w?this.n41*a.x+this.n42*a.y+this.n43*a.z+this.n44*a.w:1;return b},multiply:function(a,b){var d=a.n11,f=a.n12,h=a.n13,n=a.n14,l=a.n21,q=a.n22,m=a.n23,w=a.n24,A=a.n31,y=a.n32,D=a.n33,E=a.n34,F=a.n41,
|
|
|
-H=a.n42,L=a.n43,M=a.n44,V=b.n11,X=b.n12,ca=b.n13,aa=b.n14,Y=b.n21,fa=b.n22,c=b.n23,na=b.n24,la=b.n31,oa=b.n32,pa=b.n33,qa=b.n34;this.n11=d*V+f*Y+h*la;this.n12=d*X+f*fa+h*oa;this.n13=d*ca+f*c+h*pa;this.n14=d*aa+f*na+h*qa+n;this.n21=l*V+q*Y+m*la;this.n22=l*X+q*fa+m*oa;this.n23=l*ca+q*c+m*pa;this.n24=l*aa+q*na+m*qa+w;this.n31=A*V+y*Y+D*la;this.n32=A*X+y*fa+D*oa;this.n33=A*ca+y*c+D*pa;this.n34=A*aa+y*na+D*qa+E;this.n41=F*V+H*Y+L*la;this.n42=F*X+H*fa+L*oa;this.n43=F*ca+H*c+L*pa;this.n44=F*aa+H*na+L*qa+
|
|
|
-M;return this},multiplyToArray:function(a,b,d){this.multiply(a,b);d[0]=this.n11;d[1]=this.n21;d[2]=this.n31;d[3]=this.n41;d[4]=this.n12;d[5]=this.n22;d[6]=this.n32;d[7]=this.n42;d[8]=this.n13;d[9]=this.n23;d[10]=this.n33;d[11]=this.n43;d[12]=this.n14;d[13]=this.n24;d[14]=this.n34;d[15]=this.n44;return this},multiplySelf:function(a){this.multiply(this,a);return this},multiplyScalar:function(a){this.n11*=a;this.n12*=a;this.n13*=a;this.n14*=a;this.n21*=a;this.n22*=a;this.n23*=a;this.n24*=a;this.n31*=
|
|
|
-a;this.n32*=a;this.n33*=a;this.n34*=a;this.n41*=a;this.n42*=a;this.n43*=a;this.n44*=a;return this},determinant:function(){var a=this.n11,b=this.n12,d=this.n13,f=this.n14,h=this.n21,n=this.n22,l=this.n23,q=this.n24,m=this.n31,w=this.n32,A=this.n33,y=this.n34,D=this.n41,E=this.n42,F=this.n43,H=this.n44;return f*l*w*D-d*q*w*D-f*n*A*D+b*q*A*D+d*n*y*D-b*l*y*D-f*l*m*E+d*q*m*E+f*h*A*E-a*q*A*E-d*h*y*E+a*l*y*E+f*n*m*F-b*q*m*F-f*h*w*F+a*q*w*F+b*h*y*F-a*n*y*F-d*n*m*H+b*l*m*H+d*h*w*H-a*l*w*H-b*h*A*H+a*n*A*H},
|
|
|
-transpose:function(){var a;a=this.n21;this.n21=this.n12;this.n12=a;a=this.n31;this.n31=this.n13;this.n13=a;a=this.n32;this.n32=this.n23;this.n23=a;a=this.n41;this.n41=this.n14;this.n14=a;a=this.n42;this.n42=this.n24;this.n24=a;a=this.n43;this.n43=this.n34;this.n43=a;return this},clone:function(){var a=new THREE.Matrix4;a.n11=this.n11;a.n12=this.n12;a.n13=this.n13;a.n14=this.n14;a.n21=this.n21;a.n22=this.n22;a.n23=this.n23;a.n24=this.n24;a.n31=this.n31;a.n32=this.n32;a.n33=this.n33;a.n34=this.n34;
|
|
|
-a.n41=this.n41;a.n42=this.n42;a.n43=this.n43;a.n44=this.n44;return a},flatten:function(){this.flat[0]=this.n11;this.flat[1]=this.n21;this.flat[2]=this.n31;this.flat[3]=this.n41;this.flat[4]=this.n12;this.flat[5]=this.n22;this.flat[6]=this.n32;this.flat[7]=this.n42;this.flat[8]=this.n13;this.flat[9]=this.n23;this.flat[10]=this.n33;this.flat[11]=this.n43;this.flat[12]=this.n14;this.flat[13]=this.n24;this.flat[14]=this.n34;this.flat[15]=this.n44;return this.flat},flattenToArray:function(a){a[0]=this.n11;
|
|
|
-a[1]=this.n21;a[2]=this.n31;a[3]=this.n41;a[4]=this.n12;a[5]=this.n22;a[6]=this.n32;a[7]=this.n42;a[8]=this.n13;a[9]=this.n23;a[10]=this.n33;a[11]=this.n43;a[12]=this.n14;a[13]=this.n24;a[14]=this.n34;a[15]=this.n44;return a},flattenToArrayOffset:function(a,b){a[b]=this.n11;a[b+1]=this.n21;a[b+2]=this.n31;a[b+3]=this.n41;a[b+4]=this.n12;a[b+5]=this.n22;a[b+6]=this.n32;a[b+7]=this.n42;a[b+8]=this.n13;a[b+9]=this.n23;a[b+10]=this.n33;a[b+11]=this.n43;a[b+12]=this.n14;a[b+13]=this.n24;a[b+14]=this.n34;
|
|
|
-a[b+15]=this.n44;return a},setTranslation:function(a,b,d){this.set(1,0,0,a,0,1,0,b,0,0,1,d,0,0,0,1);return this},setScale:function(a,b,d){this.set(a,0,0,0,0,b,0,0,0,0,d,0,0,0,0,1);return this},setRotationX:function(a){var b=Math.cos(a);a=Math.sin(a);this.set(1,0,0,0,0,b,-a,0,0,a,b,0,0,0,0,1);return this},setRotationY:function(a){var b=Math.cos(a);a=Math.sin(a);this.set(b,0,a,0,0,1,0,0,-a,0,b,0,0,0,0,1);return this},setRotationZ:function(a){var b=Math.cos(a);a=Math.sin(a);this.set(b,-a,0,0,a,b,0,0,
|
|
|
-0,0,1,0,0,0,0,1);return this},setRotationAxis:function(a,b){var d=Math.cos(b),f=Math.sin(b),h=1-d,n=a.x,l=a.y,q=a.z,m=h*n,w=h*l;this.set(m*n+d,m*l-f*q,m*q+f*l,0,m*l+f*q,w*l+d,w*q-f*n,0,m*q-f*l,w*q+f*n,h*q*q+d,0,0,0,0,1);return this},setPosition:function(a){this.n14=a.x;this.n24=a.y;this.n34=a.z;return this},setRotationFromEuler:function(a){var b=a.x,d=a.y,f=a.z;a=Math.cos(b);b=Math.sin(b);var h=Math.cos(d);d=Math.sin(d);var n=Math.cos(f);f=Math.sin(f);var l=a*d,q=b*d;this.n11=h*n;this.n12=-h*f;this.n13=
|
|
|
-d;this.n21=q*n+a*f;this.n22=-q*f+a*n;this.n23=-b*h;this.n31=-l*n+b*f;this.n32=l*f+b*n;this.n33=a*h;return this},setRotationFromQuaternion:function(a){var b=a.x,d=a.y,f=a.z,h=a.w,n=b+b,l=d+d,q=f+f;a=b*n;var m=b*l;b*=q;var w=d*l;d*=q;f*=q;n*=h;l*=h;h*=q;this.n11=1-(w+f);this.n12=m-h;this.n13=b+l;this.n21=m+h;this.n22=1-(a+f);this.n23=d-n;this.n31=b-l;this.n32=d+n;this.n33=1-(a+w);return this},scale:function(a){var b=a.x,d=a.y;a=a.z;this.n11*=b;this.n12*=d;this.n13*=a;this.n21*=b;this.n22*=d;this.n23*=
|
|
|
-a;this.n31*=b;this.n32*=d;this.n33*=a;this.n41*=b;this.n42*=d;this.n43*=a;return this},extractPosition:function(a){this.n14=a.n14;this.n24=a.n24;this.n34=a.n34},extractRotation:function(a,b){var d=1/b.x,f=1/b.y,h=1/b.z;this.n11=a.n11*d;this.n21=a.n21*d;this.n31=a.n31*d;this.n12=a.n12*f;this.n22=a.n22*f;this.n32=a.n32*f;this.n13=a.n13*h;this.n23=a.n23*h;this.n33=a.n33*h}};
|
|
|
+multiplyVector4:function(a){var b=a.x,d=a.y,f=a.z,h=a.w;a.x=this.n11*b+this.n12*d+this.n13*f+this.n14*h;a.y=this.n21*b+this.n22*d+this.n23*f+this.n24*h;a.z=this.n31*b+this.n32*d+this.n33*f+this.n34*h;a.w=this.n41*b+this.n42*d+this.n43*f+this.n44*h;return a},rotateAxis:function(a){var b=a.x,d=a.y,f=a.z;a.x=b*this.n11+d*this.n12+f*this.n13;a.y=b*this.n21+d*this.n22+f*this.n23;a.z=b*this.n31+d*this.n32+f*this.n33;a.normalize();return a},crossVector:function(a){var b=new THREE.Vector4;b.x=this.n11*a.x+
|
|
|
+this.n12*a.y+this.n13*a.z+this.n14*a.w;b.y=this.n21*a.x+this.n22*a.y+this.n23*a.z+this.n24*a.w;b.z=this.n31*a.x+this.n32*a.y+this.n33*a.z+this.n34*a.w;b.w=a.w?this.n41*a.x+this.n42*a.y+this.n43*a.z+this.n44*a.w:1;return b},multiply:function(a,b){var d=a.n11,f=a.n12,h=a.n13,n=a.n14,l=a.n21,q=a.n22,m=a.n23,w=a.n24,A=a.n31,y=a.n32,D=a.n33,E=a.n34,F=a.n41,H=a.n42,L=a.n43,M=a.n44,V=b.n11,X=b.n12,ca=b.n13,aa=b.n14,Y=b.n21,fa=b.n22,c=b.n23,na=b.n24,la=b.n31,oa=b.n32,pa=b.n33,qa=b.n34;this.n11=d*V+f*Y+h*
|
|
|
+la;this.n12=d*X+f*fa+h*oa;this.n13=d*ca+f*c+h*pa;this.n14=d*aa+f*na+h*qa+n;this.n21=l*V+q*Y+m*la;this.n22=l*X+q*fa+m*oa;this.n23=l*ca+q*c+m*pa;this.n24=l*aa+q*na+m*qa+w;this.n31=A*V+y*Y+D*la;this.n32=A*X+y*fa+D*oa;this.n33=A*ca+y*c+D*pa;this.n34=A*aa+y*na+D*qa+E;this.n41=F*V+H*Y+L*la;this.n42=F*X+H*fa+L*oa;this.n43=F*ca+H*c+L*pa;this.n44=F*aa+H*na+L*qa+M;return this},multiplyToArray:function(a,b,d){this.multiply(a,b);d[0]=this.n11;d[1]=this.n21;d[2]=this.n31;d[3]=this.n41;d[4]=this.n12;d[5]=this.n22;
|
|
|
+d[6]=this.n32;d[7]=this.n42;d[8]=this.n13;d[9]=this.n23;d[10]=this.n33;d[11]=this.n43;d[12]=this.n14;d[13]=this.n24;d[14]=this.n34;d[15]=this.n44;return this},multiplySelf:function(a){this.multiply(this,a);return this},multiplyScalar:function(a){this.n11*=a;this.n12*=a;this.n13*=a;this.n14*=a;this.n21*=a;this.n22*=a;this.n23*=a;this.n24*=a;this.n31*=a;this.n32*=a;this.n33*=a;this.n34*=a;this.n41*=a;this.n42*=a;this.n43*=a;this.n44*=a;return this},determinant:function(){var a=this.n11,b=this.n12,d=
|
|
|
+this.n13,f=this.n14,h=this.n21,n=this.n22,l=this.n23,q=this.n24,m=this.n31,w=this.n32,A=this.n33,y=this.n34,D=this.n41,E=this.n42,F=this.n43,H=this.n44;return f*l*w*D-d*q*w*D-f*n*A*D+b*q*A*D+d*n*y*D-b*l*y*D-f*l*m*E+d*q*m*E+f*h*A*E-a*q*A*E-d*h*y*E+a*l*y*E+f*n*m*F-b*q*m*F-f*h*w*F+a*q*w*F+b*h*y*F-a*n*y*F-d*n*m*H+b*l*m*H+d*h*w*H-a*l*w*H-b*h*A*H+a*n*A*H},transpose:function(){var a;a=this.n21;this.n21=this.n12;this.n12=a;a=this.n31;this.n31=this.n13;this.n13=a;a=this.n32;this.n32=this.n23;this.n23=a;a=
|
|
|
+this.n41;this.n41=this.n14;this.n14=a;a=this.n42;this.n42=this.n24;this.n24=a;a=this.n43;this.n43=this.n34;this.n43=a;return this},clone:function(){var a=new THREE.Matrix4;a.n11=this.n11;a.n12=this.n12;a.n13=this.n13;a.n14=this.n14;a.n21=this.n21;a.n22=this.n22;a.n23=this.n23;a.n24=this.n24;a.n31=this.n31;a.n32=this.n32;a.n33=this.n33;a.n34=this.n34;a.n41=this.n41;a.n42=this.n42;a.n43=this.n43;a.n44=this.n44;return a},flatten:function(){this.flat[0]=this.n11;this.flat[1]=this.n21;this.flat[2]=this.n31;
|
|
|
+this.flat[3]=this.n41;this.flat[4]=this.n12;this.flat[5]=this.n22;this.flat[6]=this.n32;this.flat[7]=this.n42;this.flat[8]=this.n13;this.flat[9]=this.n23;this.flat[10]=this.n33;this.flat[11]=this.n43;this.flat[12]=this.n14;this.flat[13]=this.n24;this.flat[14]=this.n34;this.flat[15]=this.n44;return this.flat},flattenToArray:function(a){a[0]=this.n11;a[1]=this.n21;a[2]=this.n31;a[3]=this.n41;a[4]=this.n12;a[5]=this.n22;a[6]=this.n32;a[7]=this.n42;a[8]=this.n13;a[9]=this.n23;a[10]=this.n33;a[11]=this.n43;
|
|
|
+a[12]=this.n14;a[13]=this.n24;a[14]=this.n34;a[15]=this.n44;return a},flattenToArrayOffset:function(a,b){a[b]=this.n11;a[b+1]=this.n21;a[b+2]=this.n31;a[b+3]=this.n41;a[b+4]=this.n12;a[b+5]=this.n22;a[b+6]=this.n32;a[b+7]=this.n42;a[b+8]=this.n13;a[b+9]=this.n23;a[b+10]=this.n33;a[b+11]=this.n43;a[b+12]=this.n14;a[b+13]=this.n24;a[b+14]=this.n34;a[b+15]=this.n44;return a},setTranslation:function(a,b,d){this.set(1,0,0,a,0,1,0,b,0,0,1,d,0,0,0,1);return this},setScale:function(a,b,d){this.set(a,0,0,
|
|
|
+0,0,b,0,0,0,0,d,0,0,0,0,1);return this},setRotationX:function(a){var b=Math.cos(a);a=Math.sin(a);this.set(1,0,0,0,0,b,-a,0,0,a,b,0,0,0,0,1);return this},setRotationY:function(a){var b=Math.cos(a);a=Math.sin(a);this.set(b,0,a,0,0,1,0,0,-a,0,b,0,0,0,0,1);return this},setRotationZ:function(a){var b=Math.cos(a);a=Math.sin(a);this.set(b,-a,0,0,a,b,0,0,0,0,1,0,0,0,0,1);return this},setRotationAxis:function(a,b){var d=Math.cos(b),f=Math.sin(b),h=1-d,n=a.x,l=a.y,q=a.z,m=h*n,w=h*l;this.set(m*n+d,m*l-f*q,m*
|
|
|
+q+f*l,0,m*l+f*q,w*l+d,w*q-f*n,0,m*q-f*l,w*q+f*n,h*q*q+d,0,0,0,0,1);return this},setPosition:function(a){this.n14=a.x;this.n24=a.y;this.n34=a.z;return this},setRotationFromEuler:function(a){var b=a.x,d=a.y,f=a.z;a=Math.cos(b);b=Math.sin(b);var h=Math.cos(d);d=Math.sin(d);var n=Math.cos(f);f=Math.sin(f);var l=a*d,q=b*d;this.n11=h*n;this.n12=-h*f;this.n13=d;this.n21=q*n+a*f;this.n22=-q*f+a*n;this.n23=-b*h;this.n31=-l*n+b*f;this.n32=l*f+b*n;this.n33=a*h;return this},setRotationFromQuaternion:function(a){var b=
|
|
|
+a.x,d=a.y,f=a.z,h=a.w,n=b+b,l=d+d,q=f+f;a=b*n;var m=b*l;b*=q;var w=d*l;d*=q;f*=q;n*=h;l*=h;h*=q;this.n11=1-(w+f);this.n12=m-h;this.n13=b+l;this.n21=m+h;this.n22=1-(a+f);this.n23=d-n;this.n31=b-l;this.n32=d+n;this.n33=1-(a+w);return this},scale:function(a){var b=a.x,d=a.y;a=a.z;this.n11*=b;this.n12*=d;this.n13*=a;this.n21*=b;this.n22*=d;this.n23*=a;this.n31*=b;this.n32*=d;this.n33*=a;this.n41*=b;this.n42*=d;this.n43*=a;return this},extractPosition:function(a){this.n14=a.n14;this.n24=a.n24;this.n34=
|
|
|
+a.n34},extractRotation:function(a,b){var d=1/b.x,f=1/b.y,h=1/b.z;this.n11=a.n11*d;this.n21=a.n21*d;this.n31=a.n31*d;this.n12=a.n12*f;this.n22=a.n22*f;this.n32=a.n32*f;this.n13=a.n13*h;this.n23=a.n23*h;this.n33=a.n33*h}};
|
|
|
THREE.Matrix4.makeInvert=function(a,b){var d=a.n11,f=a.n12,h=a.n13,n=a.n14,l=a.n21,q=a.n22,m=a.n23,w=a.n24,A=a.n31,y=a.n32,D=a.n33,E=a.n34,F=a.n41,H=a.n42,L=a.n43,M=a.n44;b===undefined&&(b=new THREE.Matrix4);b.n11=m*E*H-w*D*H+w*y*L-q*E*L-m*y*M+q*D*M;b.n12=n*D*H-h*E*H-n*y*L+f*E*L+h*y*M-f*D*M;b.n13=h*w*H-n*m*H+n*q*L-f*w*L-h*q*M+f*m*M;b.n14=n*m*y-h*w*y-n*q*D+f*w*D+h*q*E-f*m*E;b.n21=w*D*F-m*E*F-w*A*L+l*E*L+m*A*M-l*D*M;b.n22=h*E*F-n*D*F+n*A*L-d*E*L-h*A*M+d*D*M;b.n23=n*m*F-h*w*F-n*l*L+d*w*L+h*l*M-d*m*M;
|
|
|
b.n24=h*w*A-n*m*A+n*l*D-d*w*D-h*l*E+d*m*E;b.n31=q*E*F-w*y*F+w*A*H-l*E*H-q*A*M+l*y*M;b.n32=n*y*F-f*E*F-n*A*H+d*E*H+f*A*M-d*y*M;b.n33=h*w*F-n*q*F+n*l*H-d*w*H-f*l*M+d*q*M;b.n34=n*q*A-f*w*A-n*l*y+d*w*y+f*l*E-d*q*E;b.n41=m*y*F-q*D*F-m*A*H+l*D*H+q*A*L-l*y*L;b.n42=f*D*F-h*y*F+h*A*H-d*D*H-f*A*L+d*y*L;b.n43=h*q*F-f*m*F-h*l*H+d*m*H+f*l*L-d*q*L;b.n44=f*m*A-h*q*A+h*l*y-d*m*y-f*l*D+d*q*D;b.multiplyScalar(1/a.determinant());return b};
|
|
|
THREE.Matrix4.makeInvert3x3=function(a){var b=a.m33,d=b.m,f=a.n33*a.n22-a.n32*a.n23,h=-a.n33*a.n21+a.n31*a.n23,n=a.n32*a.n21-a.n31*a.n22,l=-a.n33*a.n12+a.n32*a.n13,q=a.n33*a.n11-a.n31*a.n13,m=-a.n32*a.n11+a.n31*a.n12,w=a.n23*a.n12-a.n22*a.n13,A=-a.n23*a.n11+a.n21*a.n13,y=a.n22*a.n11-a.n21*a.n12;a=a.n11*f+a.n21*l+a.n31*w;if(a==0)throw"matrix not invertible";a=1/a;d[0]=a*f;d[1]=a*h;d[2]=a*n;d[3]=a*l;d[4]=a*q;d[5]=a*m;d[6]=a*w;d[7]=a*A;d[8]=a*y;return b};
|