var MJS_VERSION=0;var MJS_DO_ASSERT=true;try{Float32Array}catch(x){Float32Array=Array}try{WebGLFloatArray}catch(x){WebGLFloatArray=Float32Array}var MJS_FLOAT_ARRAY_TYPE=WebGLFloatArray;if(MJS_DO_ASSERT){function MathUtils_assert(a,b){if(!a){throw"Assertion failed: "+b}}}else{function MathUtils_assert(){}}var V3={};V3._temp1=new MJS_FLOAT_ARRAY_TYPE(3);V3._temp2=new MJS_FLOAT_ARRAY_TYPE(3);V3._temp3=new MJS_FLOAT_ARRAY_TYPE(3);if(MJS_FLOAT_ARRAY_TYPE==Array){V3.x=[1,0,0];V3.y=[0,1,0];V3.z=[0,0,1];V3.$=function V3_$(a,c,b){return[a,c,b]};V3.clone=function V3_clone(b){return[b[0],b[1],b[2]]}}else{V3.x=new MJS_FLOAT_ARRAY_TYPE([1,0,0]);V3.y=new MJS_FLOAT_ARRAY_TYPE([0,1,0]);V3.z=new MJS_FLOAT_ARRAY_TYPE([0,0,1]);V3.$=function V3_$(a,c,b){return new MJS_FLOAT_ARRAY_TYPE([a,c,b])};V3.clone=function V3_clone(b){return new MJS_FLOAT_ARRAY_TYPE(b)}}V3.u=V3.x;V3.v=V3.y;V3.add=function V3_add(d,c,e){if(e==undefined){e=new MJS_FLOAT_ARRAY_TYPE(3)}e[0]=d[0]+c[0];e[1]=d[1]+c[1];e[2]=d[2]+c[2];return e};V3.sub=function V3_sub(d,c,e){if(e==undefined){e=new MJS_FLOAT_ARRAY_TYPE(3)}e[0]=d[0]-c[0];e[1]=d[1]-c[1];e[2]=d[2]-c[2];return e};V3.neg=function V3_neg(b,c){if(c==undefined){c=new MJS_FLOAT_ARRAY_TYPE(3)}c[0]=-b[0];c[1]=-b[1];c[2]=-b[2];return c};V3.direction=function V3_direction(d,c,e){if(e==undefined){e=new MJS_FLOAT_ARRAY_TYPE(3)}return V3.normalize(V3.sub(d,c,e),e)};V3.length=function V3_length(b){return Math.sqrt(b[0]*b[0]+b[1]*b[1]+b[2]*b[2])};V3.lengthSquared=function V3_lengthSquared(b){return b[0]*b[0]+b[1]*b[1]+b[2]*b[2]};V3.normalize=function V3_normalize(c,d){if(d==undefined){d=new MJS_FLOAT_ARRAY_TYPE(3)}var b=1/V3.length(c);d[0]=c[0]*b;d[1]=c[1]*b;d[2]=c[2]*b;return d};V3.scale=function V3_scale(b,c,d){if(d==undefined){d=new MJS_FLOAT_ARRAY_TYPE(3)}d[0]=b[0]*c;d[1]=b[1]*c;d[2]=b[2]*c;return d};V3.dot=function V3_dot(d,c){return d[0]*c[0]+d[1]*c[1]+d[2]*c[2]};V3.cross=function V3_cross(d,c,e){if(e==undefined){e=new MJS_FLOAT_ARRAY_TYPE(3)}e[0]=d[1]*c[2]-d[2]*c[1];e[1]=d[2]*c[0]-d[0]*c[2];e[2]=d[0]*c[1]-d[1]*c[0];return e};V3.mul4x4=function V3_mul4x4(a,c,e){var b;var d=V3._temp1;if(e==undefined){e=new MJS_FLOAT_ARRAY_TYPE(3)}d[0]=a[3];d[1]=a[7];d[2]=a[11];b=V3.dot(c,d)+a[15];d[0]=a[0];d[1]=a[4];d[2]=a[8];e[0]=(V3.dot(c,d)+a[12])/b;d[0]=a[1];d[1]=a[5];d[2]=a[9];e[1]=(V3.dot(c,d)+a[13])/b;d[0]=a[2];d[1]=a[6];d[2]=a[10];e[2]=(V3.dot(c,d)+a[14])/b;return e};var M4x4={};M4x4._temp1=new MJS_FLOAT_ARRAY_TYPE(16);M4x4._temp2=new MJS_FLOAT_ARRAY_TYPE(16);if(MJS_FLOAT_ARRAY_TYPE==Array){M4x4.I=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];M4x4.$=function M4x4_$(p,o,n,m,l,k,j,i,h,f,g,e,d,c,b,a){return[p,o,n,m,l,k,j,i,h,f,g,e,d,c,b,a]};M4x4.clone=function M4x4_clone(a){return[a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],a[10],a[11],a[12],a[13],a[14],a[15]]}}else{M4x4.I=new MJS_FLOAT_ARRAY_TYPE([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]);M4x4.$=function M4x4_$(p,o,n,m,l,k,j,i,h,f,g,e,d,c,b,a){return new MJS_FLOAT_ARRAY_TYPE([p,o,n,m,l,k,j,i,h,f,g,e,d,c,b,a])};M4x4.clone=function M4x4_clone(a){return new MJS_FLOAT_ARRAY_TYPE(a)}}M4x4.identity=M4x4.I;M4x4.topLeft3x3=function M4x4_topLeft3x3(a,b){if(b==undefined){b=new MJS_FLOAT_ARRAY_TYPE(9)}b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=a[4];b[4]=a[5];b[5]=a[6];b[6]=a[8];b[7]=a[9];b[8]=a[10];return b};M4x4.inverseOrthonormal=function M4x4_inverseOrthonormal(a,c){if(c==undefined){c=new MJS_FLOAT_ARRAY_TYPE(16)}M4x4.transpose(a,c);var b=[a[12],a[13],a[14]];c[3]=c[7]=c[11]=0;c[12]=-V3.dot([c[0],c[4],c[8]],b);c[13]=-V3.dot([c[1],c[5],c[9]],b);c[14]=-V3.dot([c[2],c[6],c[10]],b);return c};M4x4.inverseTo3x3=function M4x4_inverseTo3x3(f,a){if(a==undefined){a=new MJS_FLOAT_ARRAY_TYPE(9)}var n=f[10]*f[5]-f[6]*f[9],j=-f[10]*f[1]+f[2]*f[9],e=f[6]*f[1]-f[2]*f[5],l=-f[10]*f[4]+f[6]*f[8],h=f[10]*f[0]-f[2]*f[8],d=-f[6]*f[0]+f[2]*f[4],k=f[9]*f[4]-f[5]*f[8],g=-f[9]*f[0]+f[1]*f[8],b=f[5]*f[0]-f[1]*f[4];var i=f[0]*(n)+f[1]*(l)+f[2]*(k);if(i==0){throw"matrix not invertible"}var c=1/i;a[0]=c*n;a[1]=c*j;a[2]=c*e;a[3]=c*l;a[4]=c*h;a[5]=c*d;a[6]=c*k;a[7]=c*g;a[8]=c*b;return a};M4x4.makeFrustum=function M4x4_makeFrustum(i,l,c,k,m,j,b){if(b==undefined){b=new MJS_FLOAT_ARRAY_TYPE(16)}var h=2*m/(l-i);var f=2*m/(k-c);var g=(l+i)/(l-i);var e=(k+c)/(k-c);var d=-(j+m)/(j-m);var a=-2*j*m/(j-m);b[0]=2*m/(l-i);b[1]=0;b[2]=0;b[3]=0;b[4]=0;b[5]=2*m/(k-c);b[6]=0;b[7]=0;b[8]=(l+i)/(l-i);b[9]=(k+c)/(k-c);b[10]=-(j+m)/(j-m);b[11]=-1;b[12]=0;b[13]=0;b[14]=-2*j*m/(j-m);b[15]=0;return b};M4x4.makePerspective=function M4x4_makePerspective(e,b,i,g,a){var d=i*Math.tan(e*Math.PI/360);var h=-d;var c=h*b;var f=d*b;return M4x4.makeFrustum(c,f,h,d,i,g,a)};M4x4.makeOrtho=function M4x4_makeOrtho(f,l,b,i,m,g,a){if(a==undefined){a=new MJS_FLOAT_ARRAY_TYPE(16)}var k=-(l+f)/(l-f);var j=-(i+b)/(i-b);var h=-(g+m)/(g-m);var e=2/(l-f);var d=2/(i-b);var c=-2/(g-m);a[0]=2/(l-f);a[1]=0;a[2]=0;a[3]=0;a[4]=0;a[5]=2/(i-b);a[6]=0;a[7]=0;a[8]=0;a[9]=0;a[10]=-2/(g-m);a[11]=0;a[12]=-(l+f)/(l-f);a[13]=-(i+b)/(i-b);a[14]=-(g+m)/(g-m);a[15]=1;return a};M4x4.makeOrtho2D=function M4x4_makeOrtho2D(e,b,a,d,c){return M4x4.makeOrtho(e,b,a,d,-1,1,c)};M4x4.mul=function M4x4_mul(J,I,u){if(u==undefined){u=new MJS_FLOAT_ARRAY_TYPE(16)}var l=J[0];var y=J[1];var M=J[2];var n=J[3];var j=J[4];var w=J[5];var L=J[6];var m=J[7];var i=J[8];var v=J[9];var K=J[10];var k=J[11];var g=J[12];var t=J[13];var H=J[14];var h=J[15];var F=I[0];var f=I[1];var s=I[2];var G=I[3];var D=I[4];var e=I[5];var q=I[6];var E=I[7];var B=I[8];var d=I[9];var p=I[10];var C=I[11];var z=I[12];var c=I[13];var o=I[14];var A=I[15];u[0]=l*F+j*f+i*s+g*G;u[1]=y*F+w*f+v*s+t*G;u[2]=M*F+L*f+K*s+H*G;u[3]=n*F+m*f+k*s+h*G;u[4]=l*D+j*e+i*q+g*E;u[5]=y*D+w*e+v*q+t*E;u[6]=M*D+L*e+K*q+H*E;u[7]=n*D+m*e+k*q+h*E;u[8]=l*B+j*d+i*p+g*C;u[9]=y*B+w*d+v*p+t*C;u[10]=M*B+L*d+K*p+H*C;u[11]=n*B+m*d+k*p+h*C;u[12]=l*z+j*c+i*o+g*A;u[13]=y*z+w*c+v*o+t*A;u[14]=M*z+L*c+K*o+H*A;u[15]=n*z+m*c+k*o+h*A;return u};M4x4.mulOffset=function M4x4_mulOffset(K,J,u,z){var y=K[1];var N=K[2];var m=K[3];var j=K[4];var w=K[5];var M=K[6];var l=K[7];var i=K[8];var v=K[9];var L=K[10];var k=K[11];var g=K[12];var t=K[13];var I=K[14];var h=K[15];var G=J[0];var f=J[1];var s=J[2];var H=J[3];var E=J[4];var e=J[5];var q=J[6];var F=J[7];var C=J[8];var d=J[9];var p=J[10];var D=J[11];var A=J[12];var c=J[13];var n=J[14];var B=J[15];u[z+0]=a11*G+j*f+i*s+g*H;u[z+1]=y*G+w*f+v*s+t*H;u[z+2]=N*G+M*f+L*s+I*H;u[z+3]=m*G+l*f+k*s+h*H;u[z+4]=a11*E+j*e+i*q+g*F;u[z+5]=y*E+w*e+v*q+t*F;u[z+6]=N*E+M*e+L*q+I*F;u[z+7]=m*E+l*e+k*q+h*F;u[z+8]=a11*C+j*d+i*p+g*D;u[z+9]=y*C+w*d+v*p+t*D;u[z+10]=N*C+M*d+L*p+I*D;u[z+11]=m*C+l*d+k*p+h*D;u[z+12]=a11*A+j*c+i*n+g*B;u[z+13]=y*A+w*c+v*n+t*B;u[z+14]=N*A+M*c+L*n+I*B;u[z+15]=m*A+l*c+k*n+h*B;return u};M4x4.mulAffine=function M4x4_mulAffine(B,z,p){if(p==undefined){p=new MJS_FLOAT_ARRAY_TYPE(16)}var j=B[0];var t=B[1];var E=B[2];var i=B[4];var s=B[5];var D=B[6];var h=B[8];var q=B[9];var C=B[10];var g=B[12];var o=B[13];var A=B[14];var y=z[0];var f=z[1];var n=z[2];var w=z[4];var e=z[5];var m=z[6];var v=z[8];var d=z[9];var l=z[10];var u=z[12];var c=z[13];var k=z[14];p[0]=j*y+i*f+h*n;p[1]=t*y+s*f+q*n;p[2]=E*y+D*f+C*n;p[3]=0;p[4]=j*w+i*e+h*m;p[5]=t*w+s*e+q*m;p[6]=E*w+D*e+C*m;p[7]=0;p[8]=j*v+i*d+h*l;p[9]=t*v+s*d+q*l;p[10]=E*v+D*d+C*l;p[11]=0;p[12]=j*u+i*c+h*k+g;p[13]=t*u+s*c+q*k+o;p[14]=E*u+D*c+C*k+A;p[15]=1;return p};M4x4.mulAffine=function M4x4_mulAffine(D,B,q,v){if(q==undefined){q=new MJS_FLOAT_ARRAY_TYPE(16)}var j=D[0];var u=D[1];var G=D[2];var i=D[4];var t=D[5];var F=D[6];var h=D[8];var s=D[9];var E=D[10];var g=D[12];var p=D[13];var C=D[14];var A=B[0];var f=B[1];var n=B[2];var z=B[4];var e=B[5];var m=B[6];var y=B[8];var d=B[9];var l=B[10];var w=B[12];var c=B[13];var k=B[14];q[v+0]=j*A+i*f+h*n;q[v+1]=u*A+t*f+s*n;q[v+2]=G*A+F*f+E*n;q[v+3]=0;q[v+4]=j*z+i*e+h*m;q[v+5]=u*z+t*e+s*m;q[v+6]=G*z+F*e+E*m;q[v+7]=0;q[v+8]=j*y+i*d+h*l;q[v+9]=u*y+t*d+s*l;q[v+10]=G*y+F*d+E*l;q[v+11]=0;q[v+12]=j*w+i*c+h*k+g;q[v+13]=u*w+t*c+s*k+p;q[v+14]=G*w+F*c+E*k+C;q[v+15]=1;return q};M4x4.makeRotate=function M4x4_makeRotate(d,b,a){if(a==undefined){a=new MJS_FLOAT_ARRAY_TYPE(16)}b=V3.normalize(b,V3._temp1);var i=b[0],h=b[1],g=b[2];var f=Math.cos(d);var e=1-f;var j=Math.sin(d);a[0]=i*i*e+f;a[1]=h*i*e+g*j;a[2]=g*i*e-h*j;a[3]=0;a[4]=i*h*e-g*j;a[5]=h*h*e+f;a[6]=h*g*e+i*j;a[7]=0;a[8]=i*g*e+h*j;a[9]=h*g*e-i*j;a[10]=g*g*e+f;a[11]=0;a[12]=0;a[13]=0;a[14]=0;a[15]=1;return a};M4x4.rotate=function M4x4_rotate(k,t,P,K){if(K==undefined){K=new MJS_FLOAT_ARRAY_TYPE(16)}var N=t[0],M=t[1],L=t[2];var R=Math.sqrt(N*N+M*M+L*L);var H=N,F=M,D=L;if(R!=1){var A=1/R;H*=A;F*=A;D*=A}var W=Math.cos(k);var e=1-W;var J=Math.sin(k);var B=H*J;var i=F*J;var X=D*J;var q=H*F*e;var j=H*D*e;var G=F*D*e;var S=P[0];var w=P[1];var h=P[2];var V=P[3];var Q=P[4];var v=P[5];var g=P[6];var U=P[7];var O=P[8];var u=P[9];var f=P[10];var T=P[11];var d=H*H*e+W;var I=q+X;var p=j-i;var b=q-X;var E=F*F*e+W;var o=G+B;var a=j+i;var C=G-B;var n=D*D*e+W;K[0]=S*d+Q*I+O*p;K[1]=w*d+v*I+u*p;K[2]=h*d+g*I+f*p;K[3]=V*d+U*I+T*p;K[4]=S*b+Q*E+O*o;K[5]=w*b+v*E+u*o;K[6]=h*b+g*E+f*o;K[7]=V*b+U*E+T*o;K[8]=S*a+Q*C+O*n;K[9]=w*a+v*C+u*n;K[10]=h*a+g*C+f*n;K[11]=V*a+U*C+T*n;if(K!=P){K[12]=P[12];K[13]=P[13];K[14]=P[14];K[15]=P[15]}return K};M4x4.makeScale3=function M4x4_makeScale3(a,d,c,b){if(b==undefined){b=new MJS_FLOAT_ARRAY_TYPE(16)}b[0]=a;b[1]=0;b[2]=0;b[3]=0;b[4]=0;b[5]=d;b[6]=0;b[7]=0;b[8]=0;b[9]=0;b[10]=c;b[11]=0;b[12]=0;b[13]=0;b[14]=0;b[15]=1;return b};M4x4.makeScale1=function M4x4_makeScale1(a,b){return M4x4.makeScale3(a,a,a,b)};M4x4.makeScale=function M4x4_makeScale(a,b){return M4x4.makeScale3(a[0],a[1],a[2],b)};M4x4.scale3=function M4x4_scale3(b,e,d,a,c){if(c==a){a[0]*=b;a[1]*=b;a[2]*=b;a[3]*=b;a[4]*=e;a[5]*=e;a[6]*=e;a[7]*=e;a[8]*=d;a[9]*=d;a[10]*=d;a[11]*=d;return a}if(c==undefined){c=new MJS_FLOAT_ARRAY_TYPE(16)}c[0]=a[0]*b;c[1]=a[1]*b;c[2]=a[2]*b;c[3]=a[3]*b;c[4]=a[4]*e;c[5]=a[5]*e;c[6]=a[6]*e;c[7]=a[7]*e;c[8]=a[8]*d;c[9]=a[9]*d;c[10]=a[10]*d;c[11]=a[11]*d;c[12]=a[12];c[13]=a[13];c[14]=a[14];c[15]=a[15];return c};M4x4.scale1=function M4x4_scale1(b,a,c){if(c==a){a[0]*=b;a[1]*=b;a[2]*=b;a[3]*=b;a[4]*=b;a[5]*=b;a[6]*=b;a[7]*=b;a[8]*=b;a[9]*=b;a[10]*=b;a[11]*=b;return a}if(c==undefined){c=new MJS_FLOAT_ARRAY_TYPE(16)}c[0]=a[0]*b;c[1]=a[1]*b;c[2]=a[2]*b;c[3]=a[3]*b;c[4]=a[4]*b;c[5]=a[5]*b;c[6]=a[6]*b;c[7]=a[7]*b;c[8]=a[8]*b;c[9]=a[9]*b;c[10]=a[10]*b;c[11]=a[11]*b;c[12]=a[12];c[13]=a[13];c[14]=a[14];c[15]=a[15];return c};M4x4.scale=function M4x4_scale(c,b,d){var a=c[0],f=c[1],e=c[2];if(d==b){b[0]*=a;b[1]*=a;b[2]*=a;b[3]*=a;b[4]*=f;b[5]*=f;b[6]*=f;b[7]*=f;b[8]*=e;b[9]*=e;b[10]*=e;b[11]*=e;return b}if(d==undefined){d=new MJS_FLOAT_ARRAY_TYPE(16)}d[0]=b[0]*a;d[1]=b[1]*a;d[2]=b[2]*a;d[3]=b[3]*a;d[4]=b[4]*f;d[5]=b[5]*f;d[6]=b[6]*f;d[7]=b[7]*f;d[8]=b[8]*e;d[9]=b[9]*e;d[10]=b[10]*e;d[11]=b[11]*e;d[12]=b[12];d[13]=b[13];d[14]=b[14];d[15]=b[15];return d};M4x4.makeTranslate3=function M4x4_makeTranslate3(a,d,c,b){if(b==undefined){b=new MJS_FLOAT_ARRAY_TYPE(16)}b[0]=1;b[1]=0;b[2]=0;b[3]=0;b[4]=0;b[5]=1;b[6]=0;b[7]=0;b[8]=0;b[9]=0;b[10]=1;b[11]=0;b[12]=a;b[13]=d;b[14]=c;b[15]=1;return b};M4x4.makeTranslate1=function M4x4_makeTranslate1(a,b){return M4x4.makeTranslate3(a,a,a,b)};M4x4.makeTranslate=function M4x4_makeTranslate(a,b){return M4x4.makeTranslate3(a[0],a[1],a[2],b)};M4x4.translate3Self=function M4x4_translate3Self(b,d,c,a){a[12]+=a[0]*b+a[4]*d+a[8]*c;a[13]+=a[1]*b+a[5]*d+a[9]*c;a[14]+=a[2]*b+a[6]*d+a[10]*c;a[15]+=a[3]*b+a[7]*d+a[11]*c;return a};M4x4.translate3=function M4x4_translate3(q,o,l,e,a){if(a==e){e[12]+=e[0]*q+e[4]*o+e[8]*l;e[13]+=e[1]*q+e[5]*o+e[9]*l;e[14]+=e[2]*q+e[6]*o+e[10]*l;e[15]+=e[3]*q+e[7]*o+e[11]*l;return e}if(a==undefined){a=new MJS_FLOAT_ARRAY_TYPE(16)}var k=e[0];var d=e[1];var s=e[2];var j=e[3];var i=e[4];var c=e[5];var p=e[6];var h=e[7];var g=e[8];var b=e[9];var n=e[10];var f=e[11];a[0]=k;a[1]=d;a[2]=s;a[3]=j;a[4]=i;a[5]=c;a[6]=p;a[7]=h;a[8]=g;a[9]=b;a[10]=n;a[11]=f;a[12]=k*q+i*o+g*l+e[12];a[13]=d*q+c*o+b*l+e[13];a[14]=s*q+p*o+n*l+e[14];a[15]=j*q+h*o+f*l+e[15];return a};M4x4.translate1=function M4x4_translate1(b,a,c){return M4x4.translate3(b,b,b,a,c)};M4x4.translateSelf=function M4x4_translateSelf(c,b){var a=c[0],e=c[1],d=c[2];b[12]+=b[0]*a+b[4]*e+b[8]*d;b[13]+=b[1]*a+b[5]*e+b[9]*d;b[14]+=b[2]*a+b[6]*e+b[10]*d;b[15]+=b[3]*a+b[7]*e+b[11]*d;return b};M4x4.translate=function M4x4_translate(g,l,i){var f=g[0],e=g[1],d=g[2];if(i==l){l[12]+=l[0]*f+l[4]*e+l[8]*d;l[13]+=l[1]*f+l[5]*e+l[9]*d;l[14]+=l[2]*f+l[6]*e+l[10]*d;l[15]+=l[3]*f+l[7]*e+l[11]*d;return l}if(i==undefined){i=new MJS_FLOAT_ARRAY_TYPE(16)}var q=l[0];var c=l[1];var k=l[2];var t=l[3];var p=l[4];var b=l[5];var j=l[6];var s=l[7];var n=l[8];var a=l[9];var h=l[10];var o=l[11];i[0]=q;i[1]=c;i[2]=k;i[3]=t;i[4]=p;i[5]=b;i[6]=j;i[7]=s;i[8]=n;i[9]=a;i[10]=h;i[11]=o;i[12]=q*f+p*e+n*d+l[12];i[13]=c*f+b*e+a*d+l[13];i[14]=k*f+j*e+h*d+l[14];i[15]=t*f+s*e+o*d+l[15];return i};M4x4.makeLookAt=function M4x4_makeLookAt(f,b,e,a){var g=V3.direction(f,b,V3._temp1);var i=V3.normalize(V3.cross(e,g,V3._temp2),V3._temp2);var h=V3.normalize(V3.cross(g,i,V3._temp3),V3._temp3);var d=M4x4._temp1;var c=M4x4._temp2;d[0]=i[0];d[1]=h[0];d[2]=g[0];d[3]=0;d[4]=i[1];d[5]=h[1];d[6]=g[1];d[7]=0;d[8]=i[2];d[9]=h[2];d[10]=g[2];d[11]=0;d[12]=0;d[13]=0;d[14]=0;d[15]=1;c[0]=1;c[1]=0;c[2]=0;c[3]=0;c[4]=0;c[5]=1;c[6]=0;c[7]=0;c[8]=0;c[9]=0;c[10]=1;c[11]=0;c[12]=-f[0];c[13]=-f[1];c[14]=-f[2];c[15]=1;if(a==undefined){a=new MJS_FLOAT_ARRAY_TYPE(16)}return M4x4.mul(d,c,a)};M4x4.transposeSelf=function M4x4_transposeSelf(a){var b=a[1];a[1]=a[4];a[4]=b;b=a[2];a[2]=a[8];a[8]=b;b=a[3];a[3]=a[12];a[12]=b;b=a[6];a[6]=a[9];a[9]=b;b=a[7];a[7]=a[13];a[13]=b;b=a[11];a[11]=a[14];a[14]=b;return a};M4x4.transpose=function M4x4_transpose(a,c){if(a==c){var b=0;b=a[1];a[1]=a[4];a[4]=b;b=a[2];a[2]=a[8];a[8]=b;b=a[3];a[3]=a[12];a[12]=b;b=a[6];a[6]=a[9];a[9]=b;b=a[7];a[7]=a[13];a[13]=b;b=a[11];a[11]=a[14];a[14]=b;return a}if(c==undefined){c=new MJS_FLOAT_ARRAY_TYPE(16)}c[0]=a[0];c[1]=a[4];c[2]=a[8];c[3]=a[12];c[4]=a[1];c[5]=a[5];c[6]=a[9];c[7]=a[13];c[8]=a[2];c[9]=a[6];c[10]=a[10];c[11]=a[14];c[12]=a[3];c[13]=a[7];c[14]=a[11];c[15]=a[15];return c};M4x4.transformPoint=function M4x4_transformPoint(b,d,e){if(e==undefined){e=new MJS_FLOAT_ARRAY_TYPE(3)}var a=d[0],g=d[1],f=d[2];e[0]=b[0]*a+b[4]*g+b[8]*f+b[12];e[1]=b[1]*a+b[5]*g+b[9]*f+b[13];e[2]=b[2]*a+b[6]*g+b[10]*f+b[14];var c=b[3]*a+b[7]*g+b[11]*f+b[15];if(c!=1){e[0]/=c;e[1]/=c;e[2]/=c}return e};M4x4.transformLine=function M4x4_transformLine(b,d,e){if(e==undefined){e=new MJS_FLOAT_ARRAY_TYPE(3)}var a=d[0],g=d[1],f=d[2];e[0]=b[0]*a+b[4]*g+b[8]*f;e[1]=b[1]*a+b[5]*g+b[9]*f;e[2]=b[2]*a+b[6]*g+b[10]*f;var c=b[3]*a+b[7]*g+b[11]*f;if(c!=1){e[0]/=c;e[1]/=c;e[2]/=c}return e};M4x4.transformPointAffine=function M4x4_transformPointAffine(b,c,d){if(d==undefined){d=new MJS_FLOAT_ARRAY_TYPE(3)}var a=c[0],f=c[1],e=c[2];d[0]=b[0]*a+b[4]*f+b[8]*e+b[12];d[1]=b[1]*a+b[5]*f+b[9]*e+b[13];d[2]=b[2]*a+b[6]*f+b[10]*e+b[14];return d};M4x4.transformLineAffine=function M4x4_transformLineAffine(b,c,d){if(d==undefined){d=new MJS_FLOAT_ARRAY_TYPE(3)}var a=c[0],f=c[1],e=c[2];d[0]=b[0]*a+b[4]*f+b[8]*e;d[1]=b[1]*a+b[5]*f+b[9]*e;d[2]=b[2]*a+b[6]*f+b[10]*e;return d};
