src/KopSoftWms/wwwroot/js/snow.min.js

(完整代码) 72KB

function randomRange(n,t){return Math.random()*(t-n)+n}var THREE=THREE||{},TO_RADIANS;self.Int32Array||(self.Int32Array=Array,self.Float32Array=Array);THREE.Color=function(n){return n!==void 0&&this.setHex(n),this};THREE.Color.prototype={constructor:THREE.Color,r:1,g:1,b:1,copy:function(n){return this.r=n.r,this.g=n.g,this.b=n.b,this},copyGammaToLinear:function(n){return this.r=n.r*n.r,this.g=n.g*n.g,this.b=n.b*n.b,this},copyLinearToGamma:function(n){return this.r=Math.sqrt(n.r),this.g=Math.sqrt(n.g),this.b=Math.sqrt(n.b),this},setRGB:function(n,t,i){return this.r=n,this.g=t,this.b=i,this},setHSV:function(n,t,i){var u,f,r;if(i===0)this.r=this.g=this.b=0;else switch(u=Math.floor(n*6),f=n*6-u,n=i*(1-t),r=i*(1-t*f),t=i*(1-t*(1-f)),u){case 1:this.r=r;this.g=i;this.b=n;break;case 2:this.r=n;this.g=i;this.b=t;break;case 3:this.r=n;this.g=r;this.b=i;break;case 4:this.r=t;this.g=n;this.b=i;break;case 5:this.r=i;this.g=n;this.b=r;break;case 6:case 0:this.r=i;this.g=t;this.b=n}return this},setHex:function(n){return n=Math.floor(n),this.r=(n>>16&255)/255,this.g=(n>>8&255)/255,this.b=(n&255)/255,this},getHex:function(){return~~(this.r*255)<<16^~~(this.g*255)<<8^~~(this.b*255)},getContextStyle:function(){return"rgb("+Math.floor(this.r*255)+","+Math.floor(this.g*255)+","+Math.floor(this.b*255)+")"},clone:function(){return(new THREE.Color).setRGB(this.r,this.g,this.b)}};THREE.Vector2=function(n,t){this.x=n||0;this.y=t||0};THREE.Vector2.prototype={constructor:THREE.Vector2,set:function(n,t){return this.x=n,this.y=t,this},copy:function(n){return this.x=n.x,this.y=n.y,this},clone:function(){return new THREE.Vector2(this.x,this.y)},add:function(n,t){return this.x=n.x+t.x,this.y=n.y+t.y,this},addSelf:function(n){return this.x+=n.x,this.y+=n.y,this},sub:function(n,t){return this.x=n.x-t.x,this.y=n.y-t.y,this},subSelf:function(n){return this.x-=n.x,this.y-=n.y,this},multiplyScalar:function(n){return this.x*=n,this.y*=n,this},divideScalar:function(n){return n?(this.x/=n,this.y/=n):this.set(0,0),this},negate:function(){return this.multiplyScalar(-1)},dot:function(n){return this.x*n.x+this.y*n.y},lengthSq:function(){return this.x*this.x+this.y*this.y},length:function(){return Math.sqrt(this.lengthSq())},normalize:function(){return this.divideScalar(this.length())},distanceTo:function(n){return Math.sqrt(this.distanceToSquared(n))},distanceToSquared:function(n){var t=this.x-n.x,n=this.y-n.y;return t*t+n*n},setLength:function(n){return this.normalize().multiplyScalar(n)},equals:function(n){return n.x===this.x&&n.y===this.y}};THREE.Vector3=function(n,t,i){this.x=n||0;this.y=t||0;this.z=i||0};THREE.Vector3.prototype={constructor:THREE.Vector3,set:function(n,t,i){return this.x=n,this.y=t,this.z=i,this},setX:function(n){return this.x=n,this},setY:function(n){return this.y=n,this},setZ:function(n){return this.z=n,this},copy:function(n){return this.x=n.x,this.y=n.y,this.z=n.z,this},clone:function(){return new THREE.Vector3(this.x,this.y,this.z)},add:function(n,t){return this.x=n.x+t.x,this.y=n.y+t.y,this.z=n.z+t.z,this},addSelf:function(n){return this.x+=n.x,this.y+=n.y,this.z+=n.z,this},addScalar:function(n){return this.x+=n,this.y+=n,this.z+=n,this},sub:function(n,t){return this.x=n.x-t.x,this.y=n.y-t.y,this.z=n.z-t.z,this},subSelf:function(n){return this.x-=n.x,this.y-=n.y,this.z-=n.z,this},multiply:function(n,t){return this.x=n.x*t.x,this.y=n.y*t.y,this.z=n.z*t.z,this},multiplySelf:function(n){return this.x*=n.x,this.y*=n.y,this.z*=n.z,this},multiplyScalar:function(n){return this.x*=n,this.y*=n,this.z*=n,this},divideSelf:function(n){return this.x/=n.x,this.y/=n.y,this.z/=n.z,this},divideScalar:function(n){return n?(this.x/=n,this.y/=n,this.z/=n):this.z=this.y=this.x=0,this},negate:function(){return this.multiplyScalar(-1)},dot:function(n){return this.x*n.x+this.y*n.y+this.z*n.z},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z},length:function(){return Math.sqrt(this.lengthSq())},lengthManhattan:function(){return this.x+this.y+this.z},normalize:function(){return this.divideScalar(this.length())},setLength:function(n){return this.normalize().multiplyScalar(n)},cross:function(n,t){return this.x=n.y*t.z-n.z*t.y,this.y=n.z*t.x-n.x*t.z,this.z=n.x*t.y-n.y*t.x,this},crossSelf:function(n){var t=this.x,i=this.y,r=this.z;return this.x=i*n.z-r*n.y,this.y=r*n.x-t*n.z,this.z=t*n.y-i*n.x,this},distanceTo:function(n){return Math.sqrt(this.distanceToSquared(n))},distanceToSquared:function(n){return(new THREE.Vector3).sub(this,n).lengthSq()},setPositionFromMatrix:function(n){this.x=n.n14;this.y=n.n24;this.z=n.n34},setRotationFromMatrix:function(n){var t=Math.cos(this.y);this.y=Math.asin(n.n13);Math.abs(t)>1e-5?(this.x=Math.atan2(-n.n23/t,n.n33/t),this.z=Math.atan2(-n.n12/t,n.n11/t)):(this.x=0,this.z=Math.atan2(n.n21,n.n22))},isZero:function(){return this.lengthSq()<.0001}};THREE.Vector4=function(n,t,i,r){this.x=n||0;this.y=t||0;this.z=i||0;this.w=r!==void 0?r:1};THREE.Vector4.prototype={constructor:THREE.Vector4,set:function(n,t,i,r){return this.x=n,this.y=t,this.z=i,this.w=r,this},copy:function(n){this.x=n.x;this.y=n.y;this.z=n.z;this.w=n.w!==void 0?n.w:1},clone:function(){return new THREE.Vector4(this.x,this.y,this.z,this.w)},add:function(n,t){return this.x=n.x+t.x,this.y=n.y+t.y,this.z=n.z+t.z,this.w=n.w+t.w,this},addSelf:function(n){return this.x+=n.x,this.y+=n.y,this.z+=n.z,this.w+=n.w,this},sub:function(n,t){return this.x=n.x-t.x,this.y=n.y-t.y,this.z=n.z-t.z,this.w=n.w-t.w,this},subSelf:function(n){return this.x-=n.x,this.y-=n.y,this.z-=n.z,this.w-=n.w,this},multiplyScalar:function(n){return this.x*=n,this.y*=n,this.z*=n,this.w*=n,this},divideScalar:function(n){return n?(this.x/=n,this.y/=n,this.z/=n,this.w/=n):(this.z=this.y=this.x=0,this.w=1),this},negate:function(){return this.multiplyScalar(-1)},dot:function(n){return this.x*n.x+this.y*n.y+this.z*n.z+this.w*n.w},lengthSq:function(){return this.dot(this)},length:function(){return Math.sqrt(this.lengthSq())},normalize:function(){return this.divideScalar(this.length())},setLength:function(n){return this.normalize().multiplyScalar(n)},lerpSelf:function(n,t){return this.x+=(n.x-this.x)*t,this.y+=(n.y-this.y)*t,this.z+=(n.z-this.z)*t,this.w+=(n.w-this.w)*t,this}};THREE.Ray=function(n,t){function tt(n,t,i){return(r.sub(i,n),y=r.dot(t),y<=0)?null:(it=u.add(n,a.copy(t).multiplyScalar(y)),rt=i.distanceTo(it))}function v(n,t,i,f){return r.sub(f,t),u.sub(i,t),a.sub(n,t),p=r.dot(r),o=r.dot(u),w=r.dot(a),b=u.dot(u),k=u.dot(a),d=1/(p*b-o*o),g=(b*w-o*k)*d,nt=(p*k-o*w)*d,g>=0&&nt>=0&&g+nt<1}this.origin=n||new THREE.Vector3;this.direction=t||new THREE.Vector3;this.intersectScene=function(n){return this.intersectObjects(n.children)};this.intersectObjects=function(n){for(var i=[],t=0,r=n.length;t<r;t++)Array.prototype.push.apply(i,this.intersectObject(n[t]));return i.sort(function(n,t){return n.distance-t.distance}),i};var f=new THREE.Vector3,e=new THREE.Vector3,s=new THREE.Vector3,h=new THREE.Vector3,n=new THREE.Vector3,t=new THREE.Vector3,c=new THREE.Vector3,l=new THREE.Vector3,i=new THREE.Vector3;this.intersectObject=function(r){for(var a,b,w,p,u,y=[],o=0,k=r.children.length;o<k;o++)Array.prototype.push.apply(y,this.intersectObject(r.children[o]));if(r instanceof THREE.Particle){if(o=tt(this.origin,this.direction,r.matrixWorld.getPosition()),o===null||o>r.scale.x)return[];u={distance:o,point:r.position,face:null,object:r};y.push(u)}else if(r instanceof THREE.Mesh){if(o=tt(this.origin,this.direction,r.matrixWorld.getPosition()),o===null||o>r.geometry.boundingSphere.radius*Math.max(r.scale.x,Math.max(r.scale.y,r.scale.z)))return y;for(b=r.geometry,w=b.vertices,r.matrixRotationWorld.extractRotation(r.matrixWorld),o=0,k=b.faces.length;o<k;o++)(u=b.faces[o],n.copy(this.origin),t.copy(this.direction),p=r.matrixWorld,c=p.multiplyVector3(c.copy(u.centroid)).subSelf(n),a=c.dot(t),a<=0||!(f=p.multiplyVector3(f.copy(w[u.a].position)),e=p.multiplyVector3(e.copy(w[u.b].position)),s=p.multiplyVector3(s.copy(w[u.c].position)),u instanceof THREE.Face4&&(h=p.multiplyVector3(h.copy(w[u.d].position))),l=r.matrixRotationWorld.multiplyVector3(l.copy(u.normal)),a=t.dot(l),r.doubleSided||(r.flipSided?a>0:a<0)))||((a=l.dot(c.sub(f,n))/a,i.add(n,t.multiplyScalar(a)),u instanceof THREE.Face3)?v(i,f,e,s)&&(u={distance:n.distanceTo(i),point:i.clone(),face:u,object:r},y.push(u)):u instanceof THREE.Face4&&(v(i,f,e,h)||v(i,e,s,h))&&(u={distance:n.distanceTo(i),point:i.clone(),face:u,object:r},y.push(u)))}return y};var r=new THREE.Vector3,u=new THREE.Vector3,a=new THREE.Vector3,y,it,rt,p,o,w,b,k,d,g,nt};THREE.Rectangle=function(){function f(){e=i-n;o=r-t}var n,t,i,r,e,o,u=!0;this.getX=function(){return n};this.getY=function(){return t};this.getWidth=function(){return e};this.getHeight=function(){return o};this.getLeft=function(){return n};this.getTop=function(){return t};this.getRight=function(){return i};this.getBottom=function(){return r};this.set=function(e,o,s,h){u=!1;n=e;t=o;i=s;r=h;f()};this.addPoint=function(e,o){u?(u=!1,n=e,t=o,i=e,r=o):(n=n<e?n:e,t=t<o?t:o,i=i>e?i:e,r=r>o?r:o);f()};this.add3Points=function(e,o,s,h,c,l){u?(u=!1,n=e<s?e<c?e:c:s<c?s:c,t=o<h?o<l?o:l:h<l?h:l,i=e>s?e>c?e:c:s>c?s:c,r=o>h?o>l?o:l:h>l?h:l):(n=e<s?e<c?e<n?e:n:c<n?c:n:s<c?s<n?s:n:c<n?c:n,t=o<h?o<l?o<t?o:t:l<t?l:t:h<l?h<t?h:t:l<t?l:t,i=e>s?e>c?e>i?e:i:c>i?c:i:s>c?s>i?s:i:c>i?c:i,r=o>h?o>l?o>r?o:r:l>r?l:r:h>l?h>r?h:r:l>r?l:r);f()};this.addRectangle=function(e){u?(u=!1,n=e.getLeft(),t=e.getTop(),i=e.getRight(),r=e.getBottom()):(n=n<e.getLeft()?n:e.getLeft(),t=t<e.getTop()?t:e.getTop(),i=i>e.getRight()?i:e.getRight(),r=r>e.getBottom()?r:e.getBottom());f()};this.inflate=function(u){n-=u;t-=u;i+=u;r+=u;f()};this.minSelf=function(u){n=n>u.getLeft()?n:u.getLeft();t=t>u.getTop()?t:u.getTop();i=i<u.getRight()?i:u.getRight();r=r<u.getBottom()?r:u.getBottom();f()};this.intersects=function(u){return Math.min(i,u.getRight())-Math.max(n,u.getLeft())>=0&&Math.min(r,u.getBottom())-Math.max(t,u.getTop())>=0};this.empty=function(){u=!0;r=i=t=n=0;f()};this.isEmpty=function(){return u}};THREE.Math={clamp:function(n,t,i){return n<t?t:n>i?i:n},clampBottom:function(n,t){return n<t?t:n},mapLinear:function(n,t,i,r,u){return r+(n-t)*(u-r)/(i-t)},random16:function(){return(65280*Math.random()+255*Math.random())/65535}};THREE.Matrix3=function(){this.m=[]};THREE.Matrix3.prototype={constructor:THREE.Matrix3,transpose:function(){var t,n=this.m;return t=n[1],n[1]=n[3],n[3]=t,t=n[2],n[2]=n[6],n[6]=t,t=n[5],n[5]=n[7],n[7]=t,this},transposeIntoArray:function(n){var t=this.m;return n[0]=t[0],n[1]=t[3],n[2]=t[6],n[3]=t[1],n[4]=t[4],n[5]=t[7],n[6]=t[2],n[7]=t[5],n[8]=t[8],this}};THREE.Matrix4=function(n,t,i,r,u,f,e,o,s,h,c,l,a,v,y,p){this.set(n!==void 0?n:1,t||0,i||0,r||0,u||0,f!==void 0?f:1,e||0,o||0,s||0,h||0,c!==void 0?c:1,l||0,a||0,v||0,y||0,p!==void 0?p:1);this.flat=Array(16);this.m33=new THREE.Matrix3};THREE.Matrix4.prototype={constructor:THREE.Matrix4,set:function(n,t,i,r,u,f,e,o,s,h,c,l,a,v,y,p){return this.n11=n,this.n12=t,this.n13=i,this.n14=r,this.n21=u,this.n22=f,this.n23=e,this.n24=o,this.n31=s,this.n32=h,this.n33=c,this.n34=l,this.n41=a,this.n42=v,this.n43=y,this.n44=p,this},identity:function(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this},copy:function(n){return this.set(n.n11,n.n12,n.n13,n.n14,n.n21,n.n22,n.n23,n.n24,n.n31,n.n32,n.n33,n.n34,n.n41,n.n42,n.n43,n.n44),this},lookAt:function(n,t,i){var u=THREE.Matrix4.__v1,f=THREE.Matrix4.__v2,r=THREE.Matrix4.__v3;return r.sub(n,t).normalize(),r.length()===0&&(r.z=1),u.cross(i,r).normalize(),u.length()===0&&(r.x+=.0001,u.cross(i,r).normalize()),f.cross(r,u).normalize(),this.n11=u.x,this.n12=f.x,this.n13=r.x,this.n21=u.y,this.n22=f.y,this.n23=r.y,this.n31=u.z,this.n32=f.z,this.n33=r.z,this},multiply:function(n,t){var i=n.n11,r=n.n12,u=n.n13,f=n.n14,e=n.n21,o=n.n22,s=n.n23,h=n.n24,c=n.n31,l=n.n32,a=n.n33,v=n.n34,y=n.n41,p=n.n42,w=n.n43,b=n.n44,k=t.n11,d=t.n12,g=t.n13,nt=t.n14,tt=t.n21,it=t.n22,rt=t.n23,ut=t.n24,ft=t.n31,et=t.n32,ot=t.n33,st=t.n34,ht=t.n41,ct=t.n42,lt=t.n43,at=t.n44;return this.n11=i*k+r*tt+u*ft+f*ht,this.n12=i*d+r*it+u*et+f*ct,this.n13=i*g+r*rt+u*ot+f*lt,this.n14=i*nt+r*ut+u*st+f*at,this.n21=e*k+o*tt+s*ft+h*ht,this.n22=e*d+o*it+s*et+h*ct,this.n23=e*g+o*rt+s*ot+h*lt,this.n24=e*nt+o*ut+s*st+h*at,this.n31=c*k+l*tt+a*ft+v*ht,this.n32=c*d+l*it+a*et+v*ct,this.n33=c*g+l*rt+a*ot+v*lt,this.n34=c*nt+l*ut+a*st+v*at,this.n41=y*k+p*tt+w*ft+b*ht,this.n42=y*d+p*it+w*et+b*ct,this.n43=y*g+p*rt+w*ot+b*lt,this.n44=y*nt+p*ut+w*st+b*at,this},multiplySelf:function(n){return this.multiply(this,n)},multiplyToArray:function(n,t,i){return this.multiply(n,t),i[0]=this.n11,i[1]=this.n21,i[2]=this.n31,i[3]=this.n41,i[4]=this.n12,i[5]=this.n22,i[6]=this.n32,i[7]=this.n42,i[8]=this.n13,i[9]=this.n23,i[10]=this.n33,i[11]=this.n43,i[12]=this.n14,i[13]=this.n24,i[14]=this.n34,i[15]=this.n44,this},multiplyScalar:function(n){return this.n11*=n,this.n12*=n,this.n13*=n,this.n14*=n,this.n21*=n,this.n22*=n,this.n23*=n,this.n24*=n,this.n31*=n,this.n32*=n,this.n33*=n,this.n34*=n,this.n41*=n,this.n42*=n,this.n43*=n,this.n44*=n,this},multiplyVector3:function(n){var t=n.x,i=n.y,r=n.z,u=1/(this.n41*t+this.n42*i+this.n43*r+this.n44);return n.x=(this.n11*t+this.n12*i+this.n13*r+this.n14)*u,n.y=(this.n21*t+this.n22*i+this.n23*r+this.n24)*u,n.z=(this.n31*t+this.n32*i+this.n33*r+this.n34)*u,n},multiplyVector4:function(n){var t=n.x,i=n.y,r=n.z,u=n.w;return n.x=this.n11*t+this.n12*i+this.n13*r+this.n14*u,n.y=this.n21*t+this.n22*i+this.n23*r+this.n24*u,n.z=this.n31*t+this.n32*i+this.n33*r+this.n34*u,n.w=this.n41*t+this.n42*i+this.n43*r+this.n44*u,n},rotateAxis:function(n){var t=n.x,i=n.y,r=n.z;return n.x=t*this.n11+i*this.n12+r*this.n13,n.y=t*this.n21+i*this.n22+r*this.n23,n.z=t*this.n31+i*this.n32+r*this.n33,n.normalize(),n},crossVector:function(n){var t=new THREE.Vector4;return t.x=this.n11*n.x+this.n12*n.y+this.n13*n.z+this.n14*n.w,t.y=this.n21*n.x+this.n22*n.y+this.n23*n.z+this.n24*n.w,t.z=this.n31*n.x+this.n32*n.y+this.n33*n.z+this.n34*n.w,t.w=n.w?this.n41*n.x+this.n42*n.y+this.n43*n.z+this.n44*n.w:1,t},determinant:function(){var n=this.n11,t=this.n12,i=this.n13,r=this.n14,u=this.n21,f=this.n22,e=this.n23,o=this.n24,s=this.n31,h=this.n32,c=this.n33,l=this.n34,a=this.n41,v=this.n42,y=this.n43,p=this.n44;return r*e*h*a-i*o*h*a-r*f*c*a+t*o*c*a+i*f*l*a-t*e*l*a-r*e*s*v+i*o*s*v+r*u*c*v-n*o*c*v-i*u*l*v+n*e*l*v+r*f*s*y-t*o*s*y-r*u*h*y+n*o*h*y+t*u*l*y-n*f*l*y-i*f*s*p+t*e*s*p+i*u*h*p-n*e*h*p-t*u*c*p+n*f*c*p},transpose:function(){var n;return n=this.n21,this.n21=this.n12,this.n12=n,n=this.n31,this.n31=this.n13,this.n13=n,n=this.n32,this.n32=this.n23,this.n23=n,n=this.n41,this.n41=this.n14,this.n14=n,n=this.n42,this.n42=this.n24,this.n24=n,n=this.n43,this.n43=this.n34,this.n43=n,this},clone:function(){var n=new THREE.Matrix4;return n.n11=this.n11,n.n12=this.n12,n.n13=this.n13,n.n14=this.n14,n.n21=this.n21,n.n22=this.n22,n.n23=this.n23,n.n24=this.n24,n.n31=this.n31,n.n32=this.n32,n.n33=this.n33,n.n34=this.n34,n.n41=this.n41,n.n42=this.n42,n.n43=this.n43,n.n44=this.n44,n},flatten:function(){return 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,this.flat},flattenToArray:function(n){return n[0]=this.n11,n[1]=this.n21,n[2]=this.n31,n[3]=this.n41,n[4]=this.n12,n[5]=this.n22,n[6]=this.n32,n[7]=this.n42,n[8]=this.n13,n[9]=this.n23,n[10]=this.n33,n[11]=this.n43,n[12]=this.n14,n[13]=this.n24,n[14]=this.n34,n[15]=this.n44,n},flattenToArrayOffset:function(n,t){return n[t]=this.n11,n[t+1]=this.n21,n[t+2]=this.n31,n[t+3]=this.n41,n[t+4]=this.n12,n[t+5]=this.n22,n[t+6]=this.n32,n[t+7]=this.n42,n[t+8]=this.n13,n[t+9]=this.n23,n[t+10]=this.n33,n[t+11]=this.n43,n[t+12]=this.n14,n[t+13]=this.n24,n[t+14]=this.n34,n[t+15]=this.n44,n},setTranslation:function(n,t,i){return this.set(1,0,0,n,0,1,0,t,0,0,1,i,0,0,0,1),this},setScale:function(n,t,i){return this.set(n,0,0,0,0,t,0,0,0,0,i,0,0,0,0,1),this},setRotationX:function(n){var t=Math.cos(n),n=Math.sin(n);return this.set(1,0,0,0,0,t,-n,0,0,n,t,0,0,0,0,1),this},setRotationY:function(n){var t=Math.cos(n),n=Math.sin(n);return this.set(t,0,n,0,0,1,0,0,-n,0,t,0,0,0,0,1),this},setRotationZ:function(n){var t=Math.cos(n),n=Math.sin(n);return this.set(t,-n,0,0,n,t,0,0,0,0,1,0,0,0,0,1),this},setRotationAxis:function(n,t){var e=Math.cos(t),r=Math.sin(t),s=1-e,o=n.x,u=n.y,i=n.z,f=s*o,h=s*u;return this.set(f*o+e,f*u-r*i,f*i+r*u,0,f*u+r*i,h*u+e,h*i-r*o,0,f*i-r*u,h*i+r*o,s*i*i+e,0,0,0,0,1),this},setPosition:function(n){return this.n14=n.x,this.n24=n.y,this.n34=n.z,this},getPosition:function(){return THREE.Matrix4.__v1.set(this.n14,this.n24,this.n34)},getColumnX:function(){return THREE.Matrix4.__v1.set(this.n11,this.n21,this.n31)},getColumnY:function(){return THREE.Matrix4.__v1.set(this.n12,this.n22,this.n32)},getColumnZ:function(){return THREE.Matrix4.__v1.set(this.n13,this.n23,this.n33)},getInverse:function(n){var i=n.n11,w=n.n12,t=n.n13,r=n.n14,u=n.n21,f=n.n22,e=n.n23,o=n.n24,s=n.n31,h=n.n32,c=n.n33,l=n.n34,a=n.n41,v=n.n42,y=n.n43,p=n.n44;return this.n11=e*l*v-o*c*v+o*h*y-f*l*y-e*h*p+f*c*p,this.n12=r*c*v-t*l*v-r*h*y+w*l*y+t*h*p-w*c*p,this.n13=t*o*v-r*e*v+r*f*y-w*o*y-t*f*p+w*e*p,this.n14=r*e*h-t*o*h-r*f*c+w*o*c+t*f*l-w*e*l,this.n21=o*c*a-e*l*a-o*s*y+u*l*y+e*s*p-u*c*p,this.n22=t*l*a-r*c*a+r*s*y-i*l*y-t*s*p+i*c*p,this.n23=r*e*a-t*o*a-r*u*y+i*o*y+t*u*p-i*e*p,this.n24=t*o*s-r*e*s+r*u*c-i*o*c-t*u*l+i*e*l,this.n31=f*l*a-o*h*a+o*s*v-u*l*v-f*s*p+u*h*p,this.n32=r*h*a-w*l*a-r*s*v+i*l*v+w*s*p-i*h*p,this.n33=t*o*a-r*f*a+r*u*v-i*o*v-w*u*p+i*f*p,this.n34=r*f*s-w*o*s-r*u*h+i*o*h+w*u*l-i*f*l,this.n41=e*h*a-f*c*a-e*s*v+u*c*v+f*s*y-u*h*y,this.n42=w*c*a-t*h*a+t*s*v-i*c*v-w*s*y+i*h*y,this.n43=t*f*a-w*e*a-t*u*v+i*e*v+w*u*y-i*f*y,this.n44=w*e*s-t*f*s+t*u*h-i*e*h-w*u*c+i*f*c,this.multiplyScalar(1/n.determinant()),this},setRotationFromEuler:function(n,t){var i=n.x,r=n.y,u=n.z,f=Math.cos(i),i=Math.sin(i),e=Math.cos(r),r=Math.sin(r),o=Math.cos(u),u=Math.sin(u);switch(t){case"YXZ":var s=e*o,h=e*u,c=r*o,l=r*u;this.n11=s+l*i;this.n12=c*i-h;this.n13=f*r;this.n21=f*u;this.n22=f*o;this.n23=-i;this.n31=h*i-c;this.n32=l+s*i;this.n33=f*e;break;case"ZXY":s=e*o;h=e*u;c=r*o;l=r*u;this.n11=s-l*i;this.n12=-f*u;this.n13=c+h*i;this.n21=h+c*i;this.n22=f*o;this.n23=l-s*i;this.n31=-f*r;this.n32=i;this.n33=f*e;break;case"ZYX":s=f*o;h=f*u;c=i*o;l=i*u;this.n11=e*o;this.n12=c*r-h;this.n13=s*r+l;this.n21=e*u;this.n22=l*r+s;this.n23=h*r-c;this.n31=-r;this.n32=i*e;this.n33=f*e;break;case"YZX":s=f*e;h=f*r;c=i*e;l=i*r;this.n11=e*o;this.n12=l-s*u;this.n13=c*u+h;this.n21=u;this.n22=f*o;this.n23=-i*o;this.n31=-r*o;this.n32=h*u+c;this.n33=s-l*u;break;case"XZY":s=f*e;h=f*r;c=i*e;l=i*r;this.n11=e*o;this.n12=-u;this.n13=r*o;this.n21=s*u+l;this.n22=f*o;this.n23=h*u-c;this.n31=c*u-h;this.n32=i*o;this.n33=l*u+s;break;default:s=f*o;h=f*u;c=i*o;l=i*u;this.n11=e*o;this.n12=-e*u;this.n13=r;this.n21=h+c*r;this.n22=s-l*r;this.n23=-i*e;this.n31=l-s*r;this.n32=c+h*r;this.n33=f*e}return this},setRotationFromQuaternion:function(n){var t=n.x,i=n.y,r=n.z,u=n.w,e=t+t,f=i+i,o=r+r,n=t*e,h=t*f,s;return t*=o,s=i*f,i*=o,r*=o,e*=u,f*=u,u*=o,this.n11=1-(s+r),this.n12=h-u,this.n13=t+f,this.n21=h+u,this.n22=1-(n+r),this.n23=i-e,this.n31=t-f,this.n32=i+e,this.n33=1-(n+s),this},scale:function(n){var t=n.x,i=n.y,n=n.z;return this.n11*=t,this.n12*=i,this.n13*=n,this.n21*=t,this.n22*=i,this.n23*=n,this.n31*=t,this.n32*=i,this.n33*=n,this.n41*=t,this.n42*=i,this.n43*=n,this},compose:function(n,t,i){var r=THREE.Matrix4.__m1,u=THREE.Matrix4.__m2;return r.identity(),r.setRotationFromQuaternion(t),u.setScale(i.x,i.y,i.z),this.multiply(r,u),this.n14=n.x,this.n24=n.y,this.n34=n.z,this},decompose:function(n,t,i){var r=THREE.Matrix4.__v1,u=THREE.Matrix4.__v2,f=THREE.Matrix4.__v3;return r.set(this.n11,this.n21,this.n31),u.set(this.n12,this.n22,this.n32),f.set(this.n13,this.n23,this.n33),n=n instanceof THREE.Vector3?n:new THREE.Vector3,t=t instanceof THREE.Quaternion?t:new THREE.Quaternion,i=i instanceof THREE.Vector3?i:new THREE.Vector3,i.x=r.length(),i.y=u.length(),i.z=f.length(),n.x=this.n14,n.y=this.n24,n.z=this.n34,r=THREE.Matrix4.__m1,r.copy(this),r.n11/=i.x,r.n21/=i.x,r.n31/=i.x,r.n12/=i.y,r.n22/=i.y,r.n32/=i.y,r.n13/=i.z,r.n23/=i.z,r.n33/=i.z,t.setFromRotationMatrix(r),[n,t,i]},extractPosition:function(n){return this.n14=n.n14,this.n24=n.n24,this.n34=n.n34,this},extractRotation:function(n){var t=THREE.Matrix4.__v1,i=1/t.set(n.n11,n.n21,n.n31).length(),r=1/t.set(n.n12,n.n22,n.n32).length(),t=1/t.set(n.n13,n.n23,n.n33).length();return this.n11=n.n11*i,this.n21=n.n21*i,this.n31=n.n31*i,this.n12=n.n12*r,this.n22=n.n22*r,this.n32=n.n32*r,this.n13=n.n13*t,this.n23=n.n23*t,this.n33=n.n33*t,this}};THREE.Matrix4.makeInvert3x3=function(n){var i=n.m33,t=i.m,r=n.n33*n.n22-n.n32*n.n23,e=-n.n33*n.n21+n.n31*n.n23,o=n.n32*n.n21-n.n31*n.n22,u=-n.n33*n.n12+n.n32*n.n13,s=n.n33*n.n11-n.n31*n.n13,h=-n.n32*n.n11+n.n31*n.n12,f=n.n23*n.n12-n.n22*n.n13,c=-n.n23*n.n11+n.n21*n.n13,l=n.n22*n.n11-n.n21*n.n12,n=n.n11*r+n.n21*u+n.n31*f;return n===0&&console.error("THREE.Matrix4.makeInvert3x3: Matrix not invertible."),n=1/n,t[0]=n*r,t[1]=n*e,t[2]=n*o,t[3]=n*u,t[4]=n*s,t[5]=n*h,t[6]=n*f,t[7]=n*c,t[8]=n*l,i};THREE.Matrix4.makeFrustum=function(n,t,i,r,u,f){var e;return e=new THREE.Matrix4,e.n11=2*u/(t-n),e.n12=0,e.n13=(t+n)/(t-n),e.n14=0,e.n21=0,e.n22=2*u/(r-i),e.n23=(r+i)/(r-i),e.n24=0,e.n31=0,e.n32=0,e.n33=-(f+u)/(f-u),e.n34=-2*f*u/(f-u),e.n41=0,e.n42=0,e.n43=-1,e.n44=0,e};THREE.Matrix4.makePerspective=function(n,t,i,r){var u,n=i*Math.tan(n*Math.PI/360);return u=-n,THREE.Matrix4.makeFrustum(u*t,n*t,u,n,i,r)};THREE.Matrix4.makeOrtho=function(n,t,i,r,u,f){var e,o,s,h;return e=new THREE.Matrix4,o=t-n,s=i-r,h=f-u,e.n11=2/o,e.n12=0,e.n13=0,e.n14=-((t+n)/o),e.n21=0,e.n22=2/s,e.n23=0,e.n24=-((i+r)/s),e.n31=0,e.n32=0,e.n33=-2/h,e.n34=-((f+u)/h),e.n41=0,e.n42=0,e.n43=0,e.n44=1,e};THREE.Matrix4.__v1=new THREE.Vector3;THREE.Matrix4.__v2=new THREE.Vector3;THREE.Matrix4.__v3=new THREE.Vector3;THREE.Matrix4.__m1=new THREE.Matrix4;THREE.Matrix4.__m2=new THREE.Matrix4;THREE.Object3D=function(){this.name="";this.id=THREE.Object3DCount++;this.parent=void 0;this.children=[];this.up=new THREE.Vector3(0,1,0);this.position=new THREE.Vector3;this.rotation=new THREE.Vector3;this.eulerOrder="XYZ";this.scale=new THREE.Vector3(1,1,1);this.flipSided=this.doubleSided=this.dynamic=!1;this.renderDepth=null;this.rotationAutoUpdate=!0;this.matrix=new THREE.Matrix4;this.matrixWorld=new THREE.Matrix4;this.matrixRotationWorld=new THREE.Matrix4;this.matrixWorldNeedsUpdate=this.matrixAutoUpdate=!0;this.quaternion=new THREE.Quaternion;this.useQuaternion=!1;this.boundRadius=0;this.boundRadiusScale=1;this.visible=!0;this.receiveShadow=this.castShadow=!1;this.frustumCulled=!0;this._vector=new THREE.Vector3};THREE.Object3D.prototype={constructor:THREE.Object3D,translate:function(n,t){this.matrix.rotateAxis(t);this.position.addSelf(t.multiplyScalar(n))},translateX:function(n){this.translate(n,this._vector.set(1,0,0))},translateY:function(n){this.translate(n,this._vector.set(0,1,0))},translateZ:function(n){this.translate(n,this._vector.set(0,0,1))},lookAt:function(n){this.matrix.lookAt(n,this.position,this.up);this.rotationAutoUpdate&&this.rotation.setRotationFromMatrix(this.matrix)},add:function(n){if(this.children.indexOf(n)===-1){n.parent!==void 0&&n.parent.remove(n);n.parent=this;this.children.push(n);for(var t=this;t.parent!==void 0;)t=t.parent;t!==void 0&&t instanceof THREE.Scene&&t.addObject(n)}},remove:function(n){var t=this.children.indexOf(n);if(t!==-1){for(n.parent=void 0,this.children.splice(t,1),t=this;t.parent!==void 0;)t=t.parent;t!==void 0&&t instanceof THREE.Scene&&t.removeObject(n)}},getChildByName:function(n,t){for(var i,r=0,u=this.children.length;r<u;r++)if((i=this.children[r],i.name===n)||t&&(i=i.getChildByName(n,t),i!==void 0))return i},updateMatrix:function(){this.matrix.setPosition(this.position);this.useQuaternion?this.matrix.setRotationFromQuaternion(this.quaternion):this.matrix.setRotationFromEuler(this.rotation,this.eulerOrder);(this.scale.x!==1||this.scale.y!==1||this.scale.z!==1)&&(this.matrix.scale(this.scale),this.boundRadiusScale=Math.max(this.scale.x,Math.max(this.scale.y,this.scale.z)));this.matrixWorldNeedsUpdate=!0},updateMatrixWorld:function(n){this.matrixAutoUpdate&&this.updateMatrix();(this.matrixWorldNeedsUpdate||n)&&(this.parent?this.matrixWorld.multiply(this.parent.matrixWorld,this.matrix):this.matrixWorld.copy(this.matrix),this.matrixWorldNeedsUpdate=!1,n=!0);for(var t=0,i=this.children.length;t<i;t++)this.children[t].updateMatrixWorld(n)}};THREE.Object3DCount=0;THREE.Projector=function(){function nt(){var n=it[v]=it[v]||new THREE.RenderableObject;return v++,n}function d(){var n=o[a]=o[a]||new THREE.RenderableVertex;return a++,n}function tt(n,t){return t.z-n.z}function ot(n,t){var u=0,f=1,i=n.z+n.w,e=t.z+t.w,r=-n.z+n.w,o=-t.z+t.w;return i>=0&&e>=0&&r>=0&&o>=0?!0:i<0&&e<0||r<0&&o<0?!1:(i<0?u=Math.max(u,i/(i-e)):e<0&&(f=Math.min(f,i/(i-e))),r<0?u=Math.max(u,r/(r-o)):o<0&&(f=Math.min(f,r/(r-o))),f<u?!1:(n.lerpSelf(t,u),t.lerpSelf(n,1-f),!0))}var s,v,it=[],r,a,o=[],n,y,rt=[],p,ut=[],h,w,ft=[],f,b,et=[],t={objects:[],sprites:[],lights:[],elements:[]},k=new THREE.Vector3,i=new THREE.Vector4,u=new THREE.Matrix4,g=new THREE.Matrix4,e=[new THREE.Vector4,new THREE.Vector4,new THREE.Vector4,new THREE.Vector4,new THREE.Vector4,new THREE.Vector4],c=new THREE.Vector4,l=new THREE.Vector4;this.computeFrustum=function(n){for(e[0].set(n.n41-n.n11,n.n42-n.n12,n.n43-n.n13,n.n44-n.n14),e[1].set(n.n41+n.n11,n.n42+n.n12,n.n43+n.n13,n.n44+n.n14),e[2].set(n.n41+n.n21,n.n42+n.n22,n.n43+n.n23,n.n44+n.n24),e[3].set(n.n41-n.n21,n.n42-n.n22,n.n43-n.n23,n.n44-n.n24),e[4].set(n.n41-n.n31,n.n42-n.n32,n.n43-n.n33,n.n44-n.n34),e[5].set(n.n41+n.n31,n.n42+n.n32,n.n43+n.n33,n.n44+n.n34),n=0;n<6;n++){var t=e[n];t.divideScalar(Math.sqrt(t.x*t.x+t.y*t.y+t.z*t.z))}};this.projectVector=function(n,t){return t.matrixWorldInverse.getInverse(t.matrixWorld),u.multiply(t.projectionMatrix,t.matrixWorldInverse),u.multiplyVector3(n),n};this.unprojectVector=function(n,t){return t.projectionMatrixInverse.getInverse(t.projectionMatrix),u.multiply(t.matrixWorld,t.projectionMatrixInverse),u.multiplyVector3(n),n};this.pickingRay=function(n,t){var i;return n.z=-1,i=new THREE.Vector3(n.x,n.y,1),this.unprojectVector(n,t),this.unprojectVector(i,t),i.subSelf(n).normalize(),new THREE.Ray(n,i)};this.projectGraph=function(n,i){v=0;t.objects.length=0;t.sprites.length=0;t.lights.length=0;var r=function(n){var i;if(n.visible!==!1){if((i=n instanceof THREE.Mesh||n instanceof THREE.Line)&&!(i=n.frustumCulled===!1))n:{for(var o=n.matrixWorld,h=-n.geometry.boundingSphere.radius*Math.max(n.scale.x,Math.max(n.scale.y,n.scale.z)),f=0;f<6;f++)if(i=e[f].x*o.n14+e[f].y*o.n24+e[f].z*o.n34+e[f].w,i<=h){i=!1;break n}i=!0}for(i?(u.multiplyVector3(k.copy(n.position)),s=nt(),s.object=n,s.z=k.z,t.objects.push(s)):n instanceof THREE.Sprite||n instanceof THREE.Particle?(u.multiplyVector3(k.copy(n.position)),s=nt(),s.object=n,s.z=k.z,t.sprites.push(s)):n instanceof THREE.Light&&t.lights.push(n),i=0,o=n.children.length;i<o;i++)r(n.children[i])}};return r(n),i&&t.objects.sort(tt),t};this.projectScene=function(e,s,v){var bt=s.near,ti=s.far,wt,at,st,lt,k,ht,it,ct,nt,vt,yt,kt,ni,dt,gt,pt;for(b=w=p=y=0,t.elements.length=0,s.parent===void 0&&(console.warn("DEPRECATED: Camera hasn't been added to a Scene. Adding it..."),e.add(s)),e.updateMatrixWorld(),s.matrixWorldInverse.getInverse(s.matrixWorld),u.multiply(s.projectionMatrix,s.matrixWorldInverse),this.computeFrustum(u),t=this.projectGraph(e,!1),e=0,wt=t.objects.length;e<wt;e++)if(nt=t.objects[e].object,vt=nt.matrixWorld,kt=nt.material,a=0,nt instanceof THREE.Mesh){for(yt=nt.geometry,ni=nt.geometry.materials,lt=yt.vertices,dt=yt.faces,gt=yt.faceVertexUvs,yt=nt.matrixRotationWorld.extractRotation(vt),at=0,st=lt.length;at<st;at++)r=d(),r.positionWorld.copy(lt[at].position),vt.multiplyVector3(r.positionWorld),r.positionScreen.copy(r.positionWorld),u.multiplyVector4(r.positionScreen),r.positionScreen.x/=r.positionScreen.w,r.positionScreen.y/=r.positionScreen.w,r.visible=r.positionScreen.z>bt&&r.positionScreen.z<ti;for(lt=0,at=dt.length;lt<at;lt++){if(st=dt[lt],st instanceof THREE.Face3)if(k=o[st.a],ht=o[st.b],it=o[st.c],k.visible&&ht.visible&&it.visible&&(nt.doubleSided||nt.flipSided!=(it.positionScreen.x-k.positionScreen.x)*(ht.positionScreen.y-k.positionScreen.y)-(it.positionScreen.y-k.positionScreen.y)*(ht.positionScreen.x-k.positionScreen.x)<0))ct=rt[y]=rt[y]||new THREE.RenderableFace3,y++,n=ct,n.v1.copy(k),n.v2.copy(ht),n.v3.copy(it);else continue;else if(st instanceof THREE.Face4)if(k=o[st.a],ht=o[st.b],it=o[st.c],ct=o[st.d],k.visible&&ht.visible&&it.visible&&ct.visible&&(nt.doubleSided||nt.flipSided!=((ct.positionScreen.x-k.positionScreen.x)*(ht.positionScreen.y-k.positionScreen.y)-(ct.positionScreen.y-k.positionScreen.y)*(ht.positionScreen.x-k.positionScreen.x)<0||(ht.positionScreen.x-it.positionScreen.x)*(ct.positionScreen.y-it.positionScreen.y)-(ht.positionScreen.y-it.positionScreen.y)*(ct.positionScreen.x-it.positionScreen.x)<0)))pt=ut[p]=ut[p]||new THREE.RenderableFace4,p++,n=pt,n.v1.copy(k),n.v2.copy(ht),n.v3.copy(it),n.v4.copy(ct);else continue;for(n.normalWorld.copy(st.normal),yt.multiplyVector3(n.normalWorld),n.centroidWorld.copy(st.centroid),vt.multiplyVector3(n.centroidWorld),n.centroidScreen.copy(n.centroidWorld),u.multiplyVector3(n.centroidScreen),it=st.vertexNormals,k=0,ht=it.length;k<ht;k++)ct=n.vertexNormalsWorld[k],ct.copy(it[k]),yt.multiplyVector3(ct);for(k=0,ht=gt.length;k<ht;k++)if(pt=gt[k][lt])for(it=0,ct=pt.length;it<ct;it++)n.uvs[k][it]=pt[it];n.material=kt;n.faceMaterial=st.materialIndex!==null?ni[st.materialIndex]:null;n.z=n.centroidScreen.z;t.elements.push(n)}}else if(nt instanceof THREE.Line)for(g.multiply(u,vt),lt=nt.geometry.vertices,k=d(),k.positionScreen.copy(lt[0].position),g.multiplyVector4(k.positionScreen),at=1,st=lt.length;at<st;at++)(k=d(),k.positionScreen.copy(lt[at].position),g.multiplyVector4(k.positionScreen),ht=o[a-2],c.copy(k.positionScreen),l.copy(ht.positionScreen),ot(c,l))&&(c.multiplyScalar(1/c.w),l.multiplyScalar(1/l.w),nt=ft[w]=ft[w]||new THREE.RenderableLine,w++,h=nt,h.v1.positionScreen.copy(c),h.v2.positionScreen.copy(l),h.z=Math.max(c.z,l.z),h.material=kt,t.elements.push(h));for(e=0,wt=t.sprites.length;e<wt;e++)(nt=t.sprites[e].object,vt=nt.matrixWorld,nt instanceof THREE.Particle&&(i.set(vt.n14,vt.n24,vt.n34,1),u.multiplyVector4(i),i.z/=i.w,i.z>0&&i.z<1))&&(bt=et[b]=et[b]||new THREE.RenderableParticle,b++,f=bt,f.x=i.x/i.w,f.y=i.y/i.w,f.z=i.z,f.rotation=nt.rotation.z,f.scale.x=nt.scale.x*Math.abs(f.x-(i.x+s.projectionMatrix.n11)/(i.w+s.projectionMatrix.n14)),f.scale.y=nt.scale.y*Math.abs(f.y-(i.y+s.projectionMatrix.n22)/(i.w+s.projectionMatrix.n24)),f.material=nt.material,t.elements.push(f));return v&&t.elements.sort(tt),t}};THREE.Quaternion=function(n,t,i,r){this.set(n||0,t||0,i||0,r!==void 0?r:1)};THREE.Quaternion.prototype={constructor:THREE.Quaternion,set:function(n,t,i,r){return this.x=n,this.y=t,this.z=i,this.w=r,this},copy:function(n){return this.x=n.x,this.y=n.y,this.z=n.z,this.w=n.w,this},setFromEuler:function(n){var t=Math.PI/360,i=n.x*t,r=n.y*t,u=n.z*t,n=Math.cos(r),r=Math.sin(r),t=Math.cos(-u),u=Math.sin(-u),f=Math.cos(i),i=Math.sin(i),e=n*t,o=r*u;return this.w=e*f-o*i,this.x=e*i+o*f,this.y=r*t*f+n*u*i,this.z=n*u*f-r*t*i,this},setFromAxisAngle:function(n,t){var r=t/2,i=Math.sin(r);return this.x=n.x*i,this.y=n.y*i,this.z=n.z*i,this.w=Math.cos(r),this},setFromRotationMatrix:function(n){var t=Math.pow(n.determinant(),1/3);return this.w=Math.sqrt(Math.max(0,t+n.n11+n.n22+n.n33))/2,this.x=Math.sqrt(Math.max(0,t+n.n11-n.n22-n.n33))/2,this.y=Math.sqrt(Math.max(0,t-n.n11+n.n22-n.n33))/2,this.z=Math.sqrt(Math.max(0,t-n.n11-n.n22+n.n33))/2,this.x=n.n32-n.n23<0?-Math.abs(this.x):Math.abs(this.x),this.y=n.n13-n.n31<0?-Math.abs(this.y):Math.abs(this.y),this.z=n.n21-n.n12<0?-Math.abs(this.z):Math.abs(this.z),this.normalize(),this},calculateW:function(){return this.w=-Math.sqrt(Math.abs(1-this.x*this.x-this.y*this.y-this.z*this.z)),this},inverse:function(){return this.x*=-1,this.y*=-1,this.z*=-1,this},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)},normalize:function(){var n=Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w);return n===0?this.w=this.z=this.y=this.x=0:(n=1/n,this.x*=n,this.y*=n,this.z*=n,this.w*=n),this},multiplySelf:function(n){var t=this.x,i=this.y,r=this.z,u=this.w,f=n.x,e=n.y,o=n.z,n=n.w;return this.x=t*n+u*f+i*o-r*e,this.y=i*n+u*e+r*f-t*o,this.z=r*n+u*o+t*e-i*f,this.w=u*n-t*f-i*e-r*o,this},multiply:function(n,t){return this.x=n.x*t.w+n.y*t.z-n.z*t.y+n.w*t.x,this.y=-n.x*t.z+n.y*t.w+n.z*t.x+n.w*t.y,this.z=n.x*t.y-n.y*t.x+n.z*t.w+n.w*t.z,this.w=-n.x*t.x-n.y*t.y-n.z*t.z+n.w*t.w,this},multiplyVector3:function(n,t){t||(t=n);var i=n.x,o=n.y,s=n.z,r=this.x,u=this.y,f=this.z,e=this.w,h=e*i+u*s-f*o,c=e*o+f*i-r*s,l=e*s+r*o-u*i,i=-r*i-u*o-f*s;return t.x=h*e+i*-r+c*-f-l*-u,t.y=c*e+i*-u+l*-r-h*-f,t.z=l*e+i*-f+h*-u-c*-r,t}};THREE.Quaternion.slerp=function(n,t,i,r){var u=n.w*t.w+n.x*t.x+n.y*t.y+n.z*t.z,f;return(u<0?(i.w=-t.w,i.x=-t.x,i.y=-t.y,i.z=-t.z,u=-u):i.copy(t),Math.abs(u)>=1)?(i.w=n.w,i.x=n.x,i.y=n.y,i.z=n.z,i):(f=Math.acos(u),u=Math.sqrt(1-u*u),Math.abs(u)<.001)?(i.w=.5*(n.w+t.w),i.x=.5*(n.x+t.x),i.y=.5*(n.y+t.y),i.z=.5*(n.z+t.z),i):(t=Math.sin((1-r)*f)/u,r=Math.sin(r*f)/u,i.w=n.w*t+i.w*r,i.x=n.x*t+i.x*r,i.y=n.y*t+i.y*r,i.z=n.z*t+i.z*r,i)};THREE.Vertex=function(n){this.position=n||new THREE.Vector3};THREE.Face3=function(n,t,i,r,u,f){this.a=n;this.b=t;this.c=i;this.normal=r instanceof THREE.Vector3?r:new THREE.Vector3;this.vertexNormals=r instanceof Array?r:[];this.color=u instanceof THREE.Color?u:new THREE.Color;this.vertexColors=u instanceof Array?u:[];this.vertexTangents=[];this.materialIndex=f;this.centroid=new THREE.Vector3};THREE.Face4=function(n,t,i,r,u,f,e){this.a=n;this.b=t;this.c=i;this.d=r;this.normal=u instanceof THREE.Vector3?u:new THREE.Vector3;this.vertexNormals=u instanceof Array?u:[];this.color=f instanceof THREE.Color?f:new THREE.Color;this.vertexColors=f instanceof Array?f:[];this.vertexTangents=[];this.materialIndex=e;this.centroid=new THREE.Vector3};THREE.UV=function(n,t){this.u=n||0;this.v=t||0};THREE.UV.prototype={constructor:THREE.UV,set:function(n,t){return this.u=n,this.v=t,this},copy:function(n){return this.u=n.u,this.v=n.v,this},clone:function(){return new THREE.UV(this.u,this.v)}};THREE.Geometry=function(){this.id=THREE.GeometryCount++;this.vertices=[];this.colors=[];this.materials=[];this.faces=[];this.faceUvs=[[]];this.faceVertexUvs=[[]];this.morphTargets=[];this.morphColors=[];this.skinWeights=[];this.skinIndices=[];this.boundingSphere=this.boundingBox=null;this.dynamic=this.hasTangents=!1};THREE.Geometry.prototype={constructor:THREE.Geometry,applyMatrix:function(n){var f=new THREE.Matrix4,t,r,i,u,e;for(f.extractRotation(n,new THREE.Vector3(1,1,1)),t=0,r=this.vertices.length;t<r;t++)n.multiplyVector3(this.vertices[t].position);for(t=0,r=this.faces.length;t<r;t++){for(i=this.faces[t],f.multiplyVector3(i.normal),u=0,e=i.vertexNormals.length;u<e;u++)f.multiplyVector3(i.vertexNormals[u]);n.multiplyVector3(i.centroid)}},computeCentroids:function(){for(var n,t=0,i=this.faces.length;t<i;t++)n=this.faces[t],n.centroid.set(0,0,0),n instanceof THREE.Face3?(n.centroid.addSelf(this.vertices[n.a].position),n.centroid.addSelf(this.vertices[n.b].position),n.centroid.addSelf(this.vertices[n.c].position),n.centroid.divideScalar(3)):n instanceof THREE.Face4&&(n.centroid.addSelf(this.vertices[n.a].position),n.centroid.addSelf(this.vertices[n.b].position),n.centroid.addSelf(this.vertices[n.c].position),n.centroid.addSelf(this.vertices[n.d].position),n.centroid.divideScalar(4))},computeFaceNormals:function(){for(var n,f,r,e,t=new THREE.Vector3,o=new THREE.Vector3,i=0,u=this.faces.length;i<u;i++)n=this.faces[i],f=this.vertices[n.a],r=this.vertices[n.b],e=this.vertices[n.c],t.sub(e.position,r.position),o.sub(f.position,r.position),t.crossSelf(o),t.isZero()||t.normalize(),n.normal.copy(t)},computeVertexNormals:function(){var t,r,n,i;if(this.__tmpVertices===void 0){for(i=this.__tmpVertices=Array(this.vertices.length),t=0,r=this.vertices.length;t<r;t++)i[t]=new THREE.Vector3;for(t=0,r=this.faces.length;t<r;t++)(n=this.faces[t],n instanceof THREE.Face3)?n.vertexNormals=[new THREE.Vector3,new THREE.Vector3,new THREE.Vector3]:n instanceof THREE.Face4&&(n.vertexNormals=[new THREE.Vector3,new THREE.Vector3,new THREE.Vector3,new THREE.Vector3])}else for(i=this.__tmpVertices,t=0,r=this.vertices.length;t<r;t++)i[t].set(0,0,0);for(t=0,r=this.faces.length;t<r;t++)n=this.faces[t],n instanceof THREE.Face3?(i[n.a].addSelf(n.normal),i[n.b].addSelf(n.normal),i[n.c].addSelf(n.normal)):n instanceof THREE.Face4&&(i[n.a].addSelf(n.normal),i[n.b].addSelf(n.normal),i[n.c].addSelf(n.normal),i[n.d].addSelf(n.normal));for(t=0,r=this.vertices.length;t<r;t++)i[t].normalize();for(t=0,r=this.faces.length;t<r;t++)n=this.faces[t],n instanceof THREE.Face3?(n.vertexNormals[0].copy(i[n.a]),n.vertexNormals[1].copy(i[n.b]),n.vertexNormals[2].copy(i[n.c])):n instanceof THREE.Face4&&(n.vertexNormals[0].copy(i[n.a]),n.vertexNormals[1].copy(i[n.b]),n.vertexNormals[2].copy(i[n.c]),n.vertexNormals[3].copy(i[n.d]))},computeTangents:function(){function nt(n,t,i,r,e,y,k){u=n.vertices[t].position;w=n.vertices[i].position;b=n.vertices[r].position;o=p[e];tt=p[y];it=p[k];rt=w.x-u.x;ut=b.x-u.x;ft=w.y-u.y;et=b.y-u.y;ot=w.z-u.z;st=b.z-u.z;s=tt.u-o.u;h=it.u-o.u;c=tt.v-o.v;l=it.v-o.v;f=1/(s*l-h*c);d.set((l*rt-c*ut)*f,(l*ft-c*et)*f,(l*ot-c*st)*f);g.set((s*ut-h*rt)*f,(s*et-h*ft)*f,(s*st-h*ot)*f);a[t].addSelf(d);a[i].addSelf(d);a[r].addSelf(d);v[t].addSelf(g);v[i].addSelf(g);v[r].addSelf(g)}for(var i,r,n,p,u,w,b,o,tt,it,rt,ut,ft,et,ot,st,s,h,c,l,f,k,a=[],v=[],d=new THREE.Vector3,g=new THREE.Vector3,y=new THREE.Vector3,ct=new THREE.Vector3,ht=new THREE.Vector3,lt,t=0,e=this.vertices.length;t<e;t++)a[t]=new THREE.Vector3,v[t]=new THREE.Vector3;for(t=0,e=this.faces.length;t<e;t++)n=this.faces[t],p=this.faceVertexUvs[0][t],n instanceof THREE.Face3?nt(this,n.a,n.b,n.c,0,1,2):n instanceof THREE.Face4&&(nt(this,n.a,n.b,n.c,0,1,2),nt(this,n.a,n.b,n.d,0,1,3));for(lt=["a","b","c","d"],t=0,e=this.faces.length;t<e;t++)for(n=this.faces[t],i=0;i<n.vertexNormals.length;i++)ht.copy(n.vertexNormals[i]),r=n[lt[i]],k=a[r],y.copy(k),y.subSelf(ht.multiplyScalar(ht.dot(k))).normalize(),ct.cross(n.vertexNormals[i],k),r=ct.dot(v[r]),r=r<0?-1:1,n.vertexTangents[i]=new THREE.Vector4(y.x,y.y,y.z,r);this.hasTangents=!0},computeBoundingBox:function(){var n,t,i;if(this.vertices.length>0)for(this.boundingBox={x:[this.vertices[0].position.x,this.vertices[0].position.x],y:[this.vertices[0].position.y,this.vertices[0].position.y],z:[this.vertices[0].position.z,this.vertices[0].position.z]},t=1,i=this.vertices.length;t<i;t++)n=this.vertices[t],n.position.x<this.boundingBox.x[0]?this.boundingBox.x[0]=n.position.x:n.position.x>this.boundingBox.x[1]&&(this.boundingBox.x[1]=n.position.x),n.position.y<this.boundingBox.y[0]?this.boundingBox.y[0]=n.position.y:n.position.y>this.boundingBox.y[1]&&(this.boundingBox.y[1]=n.position.y),n.position.z<this.boundingBox.z[0]?this.boundingBox.z[0]=n.position.z:n.position.z>this.boundingBox.z[1]&&(this.boundingBox.z[1]=n.position.z)},computeBoundingSphere:function(){for(var n=0,t=0,i=this.vertices.length;t<i;t++)n=Math.max(n,this.vertices[t].position.length());this.boundingSphere={radius:n}},mergeVertices:function(){for(var n={},f=[],i=[],r,e=Math.pow(10,4),t=0,u=this.vertices.length;t<u;t++)r=this.vertices[t].position,r=[Math.round(r.x*e),Math.round(r.y*e),Math.round(r.z*e)].join("_"),n[r]===void 0?(n[r]=t,f.push(this.vertices[t]),i[t]=f.length-1):i[t]=i[n[r]];for(t=0,u=this.faces.length;t<u;t++)(n=this.faces[t],n instanceof THREE.Face3)?(n.a=i[n.a],n.b=i[n.b],n.c=i[n.c]):n instanceof THREE.Face4&&(n.a=i[n.a],n.b=i[n.b],n.c=i[n.c],n.d=i[n.d]);this.vertices=f}};THREE.GeometryCount=0;THREE.Camera=function(){if(arguments.length)return console.warn("DEPRECATED: Camera() is now PerspectiveCamera() or OrthographicCamera()."),new THREE.PerspectiveCamera(arguments[0],arguments[1],arguments[2],arguments[3]);THREE.Object3D.call(this);this.matrixWorldInverse=new THREE.Matrix4;this.projectionMatrix=new THREE.Matrix4;this.projectionMatrixInverse=new THREE.Matrix4};THREE.Camera.prototype=new THREE.Object3D;THREE.Camera.prototype.constructor=THREE.Camera;THREE.Camera.prototype.lookAt=function(n){this.matrix.lookAt(this.position,n,this.up);this.rotationAutoUpdate&&this.rotation.setRotationFromMatrix(this.matrix)};THREE.OrthographicCamera=function(n,t,i,r,u,f){THREE.Camera.call(this);this.left=n;this.right=t;this.top=i;this.bottom=r;this.near=u!==void 0?u:.1;this.far=f!==void 0?f:2e3;this.updateProjectionMatrix()};THREE.OrthographicCamera.prototype=new THREE.Camera;THREE.OrthographicCamera.prototype.constructor=THREE.OrthographicCamera;THREE.OrthographicCamera.prototype.updateProjectionMatrix=function(){this.projectionMatrix=THREE.Matrix4.makeOrtho(this.left,this.right,this.top,this.bottom,this.near,this.far)};THREE.PerspectiveCamera=function(n,t,i,r){THREE.Camera.call(this);this.fov=n!==void 0?n:50;this.aspect=t!==void 0?t:1;this.near=i!==void 0?i:.1;this.far=r!==void 0?r:2e3;this.updateProjectionMatrix()};THREE.PerspectiveCamera.prototype=new THREE.Camera;THREE.PerspectiveCamera.prototype.constructor=THREE.PerspectiveCamera;THREE.PerspectiveCamera.prototype.setLens=function(n,t){this.fov=2*Math.atan((t!==void 0?t:43.25)/(n*2));this.fov*=180/Math.PI;this.updateProjectionMatrix()};THREE.PerspectiveCamera.prototype.setViewOffset=function(n,t,i,r,u,f){this.fullWidth=n;this.fullHeight=t;this.x=i;this.y=r;this.width=u;this.height=f;this.updateProjectionMatrix()};THREE.PerspectiveCamera.prototype.updateProjectionMatrix=function(){if(this.fullWidth){var t=this.fullWidth/this.fullHeight,n=Math.tan(this.fov*Math.PI/360)*this.near,i=-n,r=t*i,t=Math.abs(t*n-r),i=Math.abs(n-i);this.projectionMatrix=THREE.Matrix4.makeFrustum(r+this.x*t/this.fullWidth,r+(this.x+this.width)*t/this.fullWidth,n-(this.y+this.height)*i/this.fullHeight,n-this.y*i/this.fullHeight,this.near,this.far)}else this.projectionMatrix=THREE.Matrix4.makePerspective(this.fov,this.aspect,this.near,this.far)};THREE.Light=function(n){THREE.Object3D.call(this);this.color=new THREE.Color(n)};THREE.Light.prototype=new THREE.Object3D;THREE.Light.prototype.constructor=THREE.Light;THREE.Light.prototype.supr=THREE.Object3D.prototype;THREE.AmbientLight=function(n){THREE.Light.call(this,n)};THREE.AmbientLight.prototype=new THREE.Light;THREE.AmbientLight.prototype.constructor=THREE.AmbientLight;THREE.DirectionalLight=function(n,t,i){THREE.Light.call(this,n);this.position=new THREE.Vector3(0,1,0);this.intensity=t!==void 0?t:1;this.distance=i!==void 0?i:0};THREE.DirectionalLight.prototype=new THREE.Light;THREE.DirectionalLight.prototype.constructor=THREE.DirectionalLight;THREE.PointLight=function(n,t,i){THREE.Light.call(this,n);this.position=new THREE.Vector3(0,0,0);this.intensity=t!==void 0?t:1;this.distance=i!==void 0?i:0};THREE.PointLight.prototype=new THREE.Light;THREE.PointLight.prototype.constructor=THREE.PointLight;THREE.Material=function(n){this.name="";this.id=THREE.MaterialCount++;n=n||{};this.opacity=n.opacity!==void 0?n.opacity:1;this.transparent=n.transparent!==void 0?n.transparent:!1;this.blending=n.blending!==void 0?n.blending:THREE.NormalBlending;this.depthTest=n.depthTest!==void 0?n.depthTest:!0;this.depthWrite=n.depthWrite!==void 0?n.depthWrite:!0;this.polygonOffset=n.polygonOffset!==void 0?n.polygonOffset:!1;this.polygonOffsetFactor=n.polygonOffsetFactor!==void 0?n.polygonOffsetFactor:0;this.polygonOffsetUnits=n.polygonOffsetUnits!==void 0?n.polygonOffsetUnits:0;this.alphaTest=n.alphaTest!==void 0?n.alphaTest:0;this.overdraw=n.overdraw!==void 0?n.overdraw:!1};THREE.MaterialCount=0;THREE.NoShading=0;THREE.FlatShading=1;THREE.SmoothShading=2;THREE.NoColors=0;THREE.FaceColors=1;THREE.VertexColors=2;THREE.NormalBlending=0;THREE.AdditiveBlending=1;THREE.SubtractiveBlending=2;THREE.MultiplyBlending=3;THREE.AdditiveAlphaBlending=4;THREE.LineBasicMaterial=function(n){THREE.Material.call(this,n);n=n||{};this.color=n.color!==void 0?new THREE.Color(n.color):new THREE.Color(16777215);this.linewidth=n.linewidth!==void 0?n.linewidth:1;this.linecap=n.linecap!==void 0?n.linecap:"round";this.linejoin=n.linejoin!==void 0?n.linejoin:"round";this.vertexColors=n.vertexColors?n.vertexColors:!1;this.fog=n.fog!==void 0?n.fog:!0};THREE.LineBasicMaterial.prototype=new THREE.Material;THREE.LineBasicMaterial.prototype.constructor=THREE.LineBasicMaterial;THREE.MeshBasicMaterial=function(n){THREE.Material.call(this,n);n=n||{};this.color=n.color!==void 0?new THREE.Color(n.color):new THREE.Color(16777215);this.map=n.map!==void 0?n.map:null;this.lightMap=n.lightMap!==void 0?n.lightMap:null;this.envMap=n.envMap!==void 0?n.envMap:null;this.combine=n.combine!==void 0?n.combine:THREE.MultiplyOperation;this.reflectivity=n.reflectivity!==void 0?n.reflectivity:1;this.refractionRatio=n.refractionRatio!==void 0?n.refractionRatio:.98;this.fog=n.fog!==void 0?n.fog:!0;this.shading=n.shading!==void 0?n.shading:THREE.SmoothShading;this.wireframe=n.wireframe!==void 0?n.wireframe:!1;this.wireframeLinewidth=n.wireframeLinewidth!==void 0?n.wireframeLinewidth:1;this.wireframeLinecap=n.wireframeLinecap!==void 0?n.wireframeLinecap:"round";this.wireframeLinejoin=n.wireframeLinejoin!==void 0?n.wireframeLinejoin:"round";this.vertexColors=n.vertexColors!==void 0?n.vertexColors:!1;this.skinning=n.skinning!==void 0?n.skinning:!1;this.morphTargets=n.morphTargets!==void 0?n.morphTargets:!1};THREE.MeshBasicMaterial.prototype=new THREE.Material;THREE.MeshBasicMaterial.prototype.constructor=THREE.MeshBasicMaterial;THREE.MeshLambertMaterial=function(n){THREE.Material.call(this,n);n=n||{};this.color=n.color!==void 0?new THREE.Color(n.color):new THREE.Color(16777215);this.ambient=n.ambient!==void 0?new THREE.Color(n.ambient):new THREE.Color(328965);this.map=n.map!==void 0?n.map:null;this.lightMap=n.lightMap!==void 0?n.lightMap:null;this.envMap=n.envMap!==void 0?n.envMap:null;this.combine=n.combine!==void 0?n.combine:THREE.MultiplyOperation;this.reflectivity=n.reflectivity!==void 0?n.reflectivity:1;this.refractionRatio=n.refractionRatio!==void 0?n.refractionRatio:.98;this.fog=n.fog!==void 0?n.fog:!0;this.shading=n.shading!==void 0?n.shading:THREE.SmoothShading;this.wireframe=n.wireframe!==void 0?n.wireframe:!1;this.wireframeLinewidth=n.wireframeLinewidth!==void 0?n.wireframeLinewidth:1;this.wireframeLinecap=n.wireframeLinecap!==void 0?n.wireframeLinecap:"round";this.wireframeLinejoin=n.wireframeLinejoin!==void 0?n.wireframeLinejoin:"round";this.vertexColors=n.vertexColors!==void 0?n.vertexColors:!1;this.skinning=n.skinning!==void 0?n.skinning:!1;this.morphTargets=n.morphTargets!==void 0?n.morphTargets:!1};THREE.MeshLambertMaterial.prototype=new THREE.Material;THREE.MeshLambertMaterial.prototype.constructor=THREE.MeshLambertMaterial;THREE.MeshPhongMaterial=function(n){THREE.Material.call(this,n);n=n||{};this.color=n.color!==void 0?new THREE.Color(n.color):new THREE.Color(16777215);this.ambient=n.ambient!==void 0?new THREE.Color(n.ambient):new THREE.Color(328965);this.specular=n.specular!==void 0?new THREE.Color(n.specular):new THREE.Color(1118481);this.shininess=n.shininess!==void 0?n.shininess:30;this.metal=n.metal!==void 0?n.metal:!1;this.perPixel=n.perPixel!==void 0?n.perPixel:!1;this.map=n.map!==void 0?n.map:null;this.lightMap=n.lightMap!==void 0?n.lightMap:null;this.envMap=n.envMap!==void 0?n.envMap:null;this.combine=n.combine!==void 0?n.combine:THREE.MultiplyOperation;this.reflectivity=n.reflectivity!==void 0?n.reflectivity:1;this.refractionRatio=n.refractionRatio!==void 0?n.refractionRatio:.98;this.fog=n.fog!==void 0?n.fog:!0;this.shading=n.shading!==void 0?n.shading:THREE.SmoothShading;this.wireframe=n.wireframe!==void 0?n.wireframe:!1;this.wireframeLinewidth=n.wireframeLinewidth!==void 0?n.wireframeLinewidth:1;this.wireframeLinecap=n.wireframeLinecap!==void 0?n.wireframeLinecap:"round";this.wireframeLinejoin=n.wireframeLinejoin!==void 0?n.wireframeLinejoin:"round";this.vertexColors=n.vertexColors!==void 0?n.vertexColors:!1;this.skinning=n.skinning!==void 0?n.skinning:!1;this.morphTargets=n.morphTargets!==void 0?n.morphTargets:!1};THREE.MeshPhongMaterial.prototype=new THREE.Material;THREE.MeshPhongMaterial.prototype.constructor=THREE.MeshPhongMaterial;THREE.MeshDepthMaterial=function(n){THREE.Material.call(this,n);n=n||{};this.shading=n.shading!==void 0?n.shading:THREE.SmoothShading;this.wireframe=n.wireframe!==void 0?n.wireframe:!1;this.wireframeLinewidth=n.wireframeLinewidth!==void 0?n.wireframeLinewidth:1};THREE.MeshDepthMaterial.prototype=new THREE.Material;THREE.MeshDepthMaterial.prototype.constructor=THREE.MeshDepthMaterial;THREE.MeshNormalMaterial=function(n){THREE.Material.call(this,n);n=n||{};this.shading=n.shading?n.shading:THREE.FlatShading;this.wireframe=n.wireframe?n.wireframe:!1;this.wireframeLinewidth=n.wireframeLinewidth?n.wireframeLinewidth:1};THREE.MeshNormalMaterial.prototype=new THREE.Material;THREE.MeshNormalMaterial.prototype.constructor=THREE.MeshNormalMaterial;THREE.MeshFaceMaterial=function(){};THREE.ParticleBasicMaterial=function(n){THREE.Material.call(this,n);n=n||{};this.color=n.color!==void 0?new THREE.Color(n.color):new THREE.Color(16777215);this.map=n.map!==void 0?n.map:null;this.size=n.size!==void 0?n.size:1;this.sizeAttenuation=n.sizeAttenuation!==void 0?n.sizeAttenuation:!0;this.vertexColors=n.vertexColors!==void 0?n.vertexColors:!1;this.fog=n.fog!==void 0?n.fog:!0};THREE.ParticleBasicMaterial.prototype=new THREE.Material;THREE.ParticleBasicMaterial.prototype.constructor=THREE.ParticleBasicMaterial;THREE.ParticleCanvasMaterial=function(n){THREE.Material.call(this,n);n=n||{};this.color=n.color!==void 0?new THREE.Color(n.color):new THREE.Color(16777215);this.program=n.program!==void 0?n.program:function(){}};THREE.ParticleCanvasMaterial.prototype=new THREE.Material;THREE.ParticleCanvasMaterial.prototype.constructor=THREE.ParticleCanvasMaterial;THREE.Texture=function(n,t,i,r,u,f){this.id=THREE.TextureCount++;this.image=n;this.mapping=t!==void 0?t:new THREE.UVMapping;this.wrapS=i!==void 0?i:THREE.ClampToEdgeWrapping;this.wrapT=r!==void 0?r:THREE.ClampToEdgeWrapping;this.magFilter=u!==void 0?u:THREE.LinearFilter;this.minFilter=f!==void 0?f:THREE.LinearMipMapLinearFilter;this.offset=new THREE.Vector2(0,0);this.repeat=new THREE.Vector2(1,1);this.needsUpdate=!1;this.onUpdate=null};THREE.Texture.prototype={constructor:THREE.Texture,clone:function(){var n=new THREE.Texture(this.image,this.mapping,this.wrapS,this.wrapT,this.magFilter,this.minFilter);return n.offset.copy(this.offset),n.repeat.copy(this.repeat),n}};THREE.TextureCount=0;THREE.MultiplyOperation=0;THREE.MixOperation=1;THREE.CubeReflectionMapping=function(){};THREE.CubeRefractionMapping=function(){};THREE.LatitudeReflectionMapping=function(){};THREE.LatitudeRefractionMapping=function(){};THREE.SphericalReflectionMapping=function(){};THREE.SphericalRefractionMapping=function(){};THREE.UVMapping=function(){};THREE.RepeatWrapping=0;THREE.ClampToEdgeWrapping=1;THREE.MirroredRepeatWrapping=2;THREE.NearestFilter=3;THREE.NearestMipMapNearestFilter=4;THREE.NearestMipMapLinearFilter=5;THREE.LinearFilter=6;THREE.LinearMipMapNearestFilter=7;THREE.LinearMipMapLinearFilter=8;THREE.ByteType=9;THREE.UnsignedByteType=10;THREE.ShortType=11;THREE.UnsignedShortType=12;THREE.IntType=13;THREE.UnsignedIntType=14;THREE.FloatType=15;THREE.AlphaFormat=16;THREE.RGBFormat=17;THREE.RGBAFormat=18;THREE.LuminanceFormat=19;THREE.LuminanceAlphaFormat=20;THREE.Particle=function(n){THREE.Object3D.call(this);this.material=n};THREE.Particle.prototype=new THREE.Object3D;THREE.Particle.prototype.constructor=THREE.Particle;THREE.Line=function(n,t,i){THREE.Object3D.call(this);this.geometry=n;this.material=t;this.type=i!==void 0?i:THREE.LineStrip;this.geometry&&(this.geometry.boundingSphere||this.geometry.computeBoundingSphere())};THREE.LineStrip=0;THREE.LinePieces=1;THREE.Line.prototype=new THREE.Object3D;THREE.Line.prototype.constructor=THREE.Line;THREE.Mesh=function(n,t){if(THREE.Object3D.call(this),this.geometry=n,this.material=t,t instanceof Array&&(console.warn("DEPRECATED: Mesh material can no longer be an Array. Using material at index 0..."),this.material=t[0]),this.geometry&&(this.geometry.boundingSphere||this.geometry.computeBoundingSphere(),this.boundRadius=n.boundingSphere.radius,this.geometry.morphTargets.length)){this.morphTargetBase=-1;this.morphTargetForcedOrder=[];this.morphTargetInfluences=[];this.morphTargetDictionary={};for(var i=0;i<this.geometry.morphTargets.length;i++)this.morphTargetInfluences.push(0),this.morphTargetDictionary[this.geometry.morphTargets[i].name]=i}};THREE.Mesh.prototype=new THREE.Object3D;THREE.Mesh.prototype.constructor=THREE.Mesh;THREE.Mesh.prototype.supr=THREE.Object3D.prototype;THREE.Mesh.prototype.getMorphTargetIndexByName=function(n){return this.morphTargetDictionary[n]!==void 0?this.morphTargetDictionary[n]:(console.log("THREE.Mesh.getMorphTargetIndexByName: morph target "+n+" does not exist. Returning 0."),0)};THREE.Bone=function(n){THREE.Object3D.call(this);this.skin=n;this.skinMatrix=new THREE.Matrix4};THREE.Bone.prototype=new THREE.Object3D;THREE.Bone.prototype.constructor=THREE.Bone;THREE.Bone.prototype.supr=THREE.Object3D.prototype;THREE.Bone.prototype.update=function(n,t){this.matrixAutoUpdate&&(t|=this.updateMatrix());(t||this.matrixWorldNeedsUpdate)&&(n?this.skinMatrix.multiply(n,this.matrix):this.skinMatrix.copy(this.matrix),this.matrixWorldNeedsUpdate=!1,t=!0);for(var r=this.children.length,i=0;i<r;i++)this.children[i].update(this.skinMatrix,t)};THREE.Sprite=function(n){THREE.Object3D.call(this);this.color=n.color!==void 0?new THREE.Color(n.color):new THREE.Color(16777215);this.map=n.map instanceof THREE.Texture?n.map:THREE.ImageUtils.loadTexture(n.map);this.blending=n.blending!==void 0?n.blending:THREE.NormalBlending;this.useScreenCoordinates=n.useScreenCoordinates!==void 0?n.useScreenCoordinates:!0;this.mergeWith3D=n.mergeWith3D!==void 0?n.mergeWith3D:!this.useScreenCoordinates;this.affectedByDistance=n.affectedByDistance!==void 0?n.affectedByDistance:!this.useScreenCoordinates;this.scaleByViewport=n.scaleByViewport!==void 0?n.scaleByViewport:!this.affectedByDistance;this.alignment=n.alignment instanceof THREE.Vector2?n.alignment:THREE.SpriteAlignment.center;this.rotation3d=this.rotation;this.rotation=0;this.opacity=1;this.uvOffset=new THREE.Vector2(0,0);this.uvScale=new THREE.Vector2(1,1)};THREE.Sprite.prototype=new THREE.Object3D;THREE.Sprite.prototype.constructor=THREE.Sprite;THREE.Sprite.prototype.updateMatrix=function(){this.matrix.setPosition(this.position);this.rotation3d.set(0,0,this.rotation);this.matrix.setRotationFromEuler(this.rotation3d);(this.scale.x!==1||this.scale.y!==1)&&(this.matrix.scale(this.scale),this.boundRadiusScale=Math.max(this.scale.x,this.scale.y));this.matrixWorldNeedsUpdate=!0};THREE.SpriteAlignment={};THREE.SpriteAlignment.topLeft=new THREE.Vector2(1,-1);THREE.SpriteAlignment.topCenter=new THREE.Vector2(0,-1);THREE.SpriteAlignment.topRight=new THREE.Vector2(-1,-1);THREE.SpriteAlignment.centerLeft=new THREE.Vector2(1,0);THREE.SpriteAlignment.center=new THREE.Vector2(0,0);THREE.SpriteAlignment.centerRight=new THREE.Vector2(-1,0);THREE.SpriteAlignment.bottomLeft=new THREE.Vector2(1,1);THREE.SpriteAlignment.bottomCenter=new THREE.Vector2(0,1);THREE.SpriteAlignment.bottomRight=new THREE.Vector2(-1,1);THREE.Scene=function(){THREE.Object3D.call(this);this.overrideMaterial=this.fog=null;this.matrixAutoUpdate=!1;this.objects=[];this.lights=[];this.__objectsAdded=[];this.__objectsRemoved=[]};THREE.Scene.prototype=new THREE.Object3D;THREE.Scene.prototype.constructor=THREE.Scene;THREE.Scene.prototype.addObject=function(n){if(n instanceof THREE.Light)this.lights.indexOf(n)===-1&&this.lights.push(n);else if(!(n instanceof THREE.Camera||n instanceof THREE.Bone)&&this.objects.indexOf(n)===-1){this.objects.push(n);this.__objectsAdded.push(n);var t=this.__objectsRemoved.indexOf(n);t!==-1&&this.__objectsRemoved.splice(t,1)}for(t=0;t<n.children.length;t++)this.addObject(n.children[t])};THREE.Scene.prototype.removeObject=function(n){if(n instanceof THREE.Light){var t=this.lights.indexOf(n);t!==-1&&this.lights.splice(t,1)}else n instanceof THREE.Camera||(t=this.objects.indexOf(n),t!==-1&&(this.objects.splice(t,1),this.__objectsRemoved.push(n),t=this.__objectsAdded.indexOf(n),t!==-1&&this.__objectsAdded.splice(t,1)));for(t=0;t<n.children.length;t++)this.removeObject(n.children[t])};THREE.CanvasRenderer=function(n){function vt(n){pi!=n&&(t.globalAlpha=pi=n)}function lt(n){if(wi!=n){switch(n){case THREE.NormalBlending:t.globalCompositeOperation="source-over";break;case THREE.AdditiveBlending:t.globalCompositeOperation="lighter";break;case THREE.SubtractiveBlending:t.globalCompositeOperation="darker"}wi=n}}function ci(n){bi!=n&&(t.strokeStyle=bi=n)}function fi(n){ki!=n&&(t.fillStyle=ki=n)}var at=this,li,ai,rt,cr=new THREE.Projector,n=n||{},ei=n.canvas!==void 0?n.canvas:document.createElement("canvas"),vi,yi,o,s,t=ei.getContext("2d"),yt=new THREE.Color(0),pt=0,pi=1,wi=0,bi=null,ki=null,wt=null,bt=null,kt=null,e,h,v,ft,di=new THREE.RenderableVertex,gi=new THREE.RenderableVertex,y,p,w,b,k,d,et,ot,dt,gt,ni,ti,i=new THREE.Color,f=new THREE.Color,r=new THREE.Color,u=new THREE.Color,c=new THREE.Color,nr=[],tr=[],st,ht,ut,tt,ur,fr,er,or,sr,hr,ct=new THREE.Rectangle,g=new THREE.Rectangle,a=new THREE.Rectangle,ir=!1,nt=new THREE.Color,oi=new THREE.Color,si=new THREE.Color,l=new THREE.Vector3,ii,ri,rr,it,ui,hi,n=16;ii=document.createElement("canvas");ii.width=ii.height=2;ri=ii.getContext("2d");ri.fillStyle="rgba(0,0,0,1)";ri.fillRect(0,0,2,2);rr=ri.getImageData(0,0,2,2);it=rr.data;ui=document.createElement("canvas");ui.width=ui.height=n;hi=ui.getContext("2d");hi.translate(-n/2,-n/2);hi.scale(n,n);n--;this.domElement=ei;this.sortElements=this.sortObjects=this.autoClear=!0;this.info={render:{vertices:0,faces:0}};this.setSize=function(n,t){vi=n;yi=t;o=Math.floor(vi/2);s=Math.floor(yi/2);ei.width=vi;ei.height=yi;ct.set(-o,-s,o,s);g.set(-o,-s,o,s);pi=1;wi=0;kt=bt=wt=ki=bi=null};this.setClearColor=function(n,t){yt.copy(n);pt=t;g.set(-o,-s,o,s)};this.setClearColorHex=function(n,t){yt.setHex(n);pt=t;g.set(-o,-s,o,s)};this.clear=function(){t.setTransform(1,0,0,-1,o,s);g.isEmpty()||(g.minSelf(ct),g.inflate(2),pt<1&&t.clearRect(Math.floor(g.getX()),Math.floor(g.getY()),Math.floor(g.getWidth()),Math.floor(g.getHeight())),pt>0&&(lt(THREE.NormalBlending),vt(1),fi("rgba("+Math.floor(yt.r*255)+","+Math.floor(yt.g*255)+","+Math.floor(yt.b*255)+","+pt+")"),t.fillRect(Math.floor(g.getX()),Math.floor(g.getY()),Math.floor(g.getWidth()),Math.floor(g.getHeight()))),g.empty())};this.render=function(n,yt){function dr(n){var r,u,i,t;for(nt.setRGB(0,0,0),oi.setRGB(0,0,0),si.setRGB(0,0,0),r=0,u=n.length;r<u;r++)i=n[r],t=i.color,i instanceof THREE.AmbientLight?(nt.r+=t.r,nt.g+=t.g,nt.b+=t.b):i instanceof THREE.DirectionalLight?(oi.r+=t.r,oi.g+=t.g,oi.b+=t.b):i instanceof THREE.PointLight&&(si.r+=t.r,si.g+=t.g,si.b+=t.b)}function vi(n,t,i,r){for(var f,e,o,u,s=0,h=n.length;s<h;s++)f=n[s],e=f.color,f instanceof THREE.DirectionalLight?(o=f.matrixWorld.getPosition(),u=i.dot(o),u<=0||(u*=f.intensity,r.r+=e.r*u,r.g+=e.g*u,r.b+=e.b*u)):f instanceof THREE.PointLight&&(o=f.matrixWorld.getPosition(),u=i.dot(l.sub(o,t).normalize()),u<=0||(u*=f.distance==0?1:1-Math.min(t.distanceTo(o)/f.distance,1),u!=0&&(u*=f.intensity,r.r+=e.r*u,r.g+=e.g*u,r.b+=e.b*u)))}function gr(n,i,r){vt(r.opacity);lt(r.blending);var u,f,h,e,c,l;r instanceof THREE.ParticleBasicMaterial?r.map&&(e=r.map.image,c=e.width>>1,l=e.height>>1,r=i.scale.x*o,h=i.scale.y*s,u=r*c,f=h*l,a.set(n.x-u,n.y-f,n.x+u,n.y+f),ct.intersects(a)&&(t.save(),t.translate(n.x,n.y),t.rotate(-i.rotation),t.scale(r,-h),t.translate(-c,-l),t.drawImage(e,0,0),t.restore())):r instanceof THREE.ParticleCanvasMaterial&&(u=i.scale.x*o,f=i.scale.y*s,a.set(n.x-u,n.y-f,n.x+u,n.y+f),ct.intersects(a)&&(ci(r.color.getContextStyle()),fi(r.color.getContextStyle()),t.save(),t.translate(n.x,n.y),t.rotate(-i.rotation),t.scale(u,f),r.program(t),t.restore()))}function nu(n,i,r,u){vt(u.opacity);lt(u.blending);t.beginPath();t.moveTo(n.positionScreen.x,n.positionScreen.y);t.lineTo(i.positionScreen.x,i.positionScreen.y);t.closePath();u instanceof THREE.LineBasicMaterial&&(n=u.linewidth,wt!=n&&(t.lineWidth=wt=n),n=u.linecap,bt!=n&&(t.lineCap=bt=n),n=u.linejoin,kt!=n&&(t.lineJoin=kt=n),ci(u.color.getContextStyle()),t.stroke(),a.inflate(u.linewidth*2))}function wr(n,t,e,o,s,h,a,v){at.info.render.vertices+=3;at.info.render.faces++;vt(v.opacity);lt(v.blending);y=n.positionScreen.x;p=n.positionScreen.y;w=t.positionScreen.x;b=t.positionScreen.y;k=e.positionScreen.x;d=e.positionScreen.y;ar(y,p,w,b,k,d);v instanceof THREE.MeshBasicMaterial?v.map?v.map.mapping instanceof THREE.UVMapping&&(tt=a.uvs[0],br(y,p,w,b,k,d,tt[o].u,tt[o].v,tt[s].u,tt[s].v,tt[h].u,tt[h].v,v.map)):v.envMap?v.envMap.mapping instanceof THREE.SphericalReflectionMapping&&(n=yt.matrixWorldInverse,l.copy(a.vertexNormalsWorld[o]),ur=(l.x*n.n11+l.y*n.n12+l.z*n.n13)*.5+.5,fr=-(l.x*n.n21+l.y*n.n22+l.z*n.n23)*.5+.5,l.copy(a.vertexNormalsWorld[s]),er=(l.x*n.n11+l.y*n.n12+l.z*n.n13)*.5+.5,or=-(l.x*n.n21+l.y*n.n22+l.z*n.n23)*.5+.5,l.copy(a.vertexNormalsWorld[h]),sr=(l.x*n.n11+l.y*n.n12+l.z*n.n13)*.5+.5,hr=-(l.x*n.n21+l.y*n.n22+l.z*n.n23)*.5+.5,br(y,p,w,b,k,d,ur,fr,er,or,sr,hr,v.envMap)):v.wireframe?pi(v.color,v.wireframeLinewidth,v.wireframeLinecap,v.wireframeLinejoin):yi(v.color):v instanceof THREE.MeshLambertMaterial?(v.map&&!v.wireframe&&(v.map.mapping instanceof THREE.UVMapping&&(tt=a.uvs[0],br(y,p,w,b,k,d,tt[o].u,tt[o].v,tt[s].u,tt[s].v,tt[h].u,tt[h].v,v.map)),lt(THREE.SubtractiveBlending)),ir?!v.wireframe&&v.shading==THREE.SmoothShading&&a.vertexNormalsWorld.length==3?(f.r=r.r=u.r=nt.r,f.g=r.g=u.g=nt.g,f.b=r.b=u.b=nt.b,vi(rt,a.v1.positionWorld,a.vertexNormalsWorld[0],f),vi(rt,a.v2.positionWorld,a.vertexNormalsWorld[1],r),vi(rt,a.v3.positionWorld,a.vertexNormalsWorld[2],u),f.r=Math.max(0,Math.min(v.color.r*f.r,1)),f.g=Math.max(0,Math.min(v.color.g*f.g,1)),f.b=Math.max(0,Math.min(v.color.b*f.b,1)),r.r=Math.max(0,Math.min(v.color.r*r.r,1)),r.g=Math.max(0,Math.min(v.color.g*r.g,1)),r.b=Math.max(0,Math.min(v.color.b*r.b,1)),u.r=Math.max(0,Math.min(v.color.r*u.r,1)),u.g=Math.max(0,Math.min(v.color.g*u.g,1)),u.b=Math.max(0,Math.min(v.color.b*u.b,1)),c.r=(r.r+u.r)*.5,c.g=(r.g+u.g)*.5,c.b=(r.b+u.b)*.5,ut=yr(f,r,u,c),ki(y,p,w,b,k,d,0,0,1,0,0,1,ut)):(i.r=nt.r,i.g=nt.g,i.b=nt.b,vi(rt,a.centroidWorld,a.normalWorld,i),i.r=Math.max(0,Math.min(v.color.r*i.r,1)),i.g=Math.max(0,Math.min(v.color.g*i.g,1)),i.b=Math.max(0,Math.min(v.color.b*i.b,1)),v.wireframe?pi(i,v.wireframeLinewidth,v.wireframeLinecap,v.wireframeLinejoin):yi(i)):v.wireframe?pi(v.color,v.wireframeLinewidth,v.wireframeLinecap,v.wireframeLinejoin):yi(v.color)):v instanceof THREE.MeshDepthMaterial?(st=yt.near,ht=yt.far,f.r=f.g=f.b=1-bi(n.positionScreen.z,st,ht),r.r=r.g=r.b=1-bi(t.positionScreen.z,st,ht),u.r=u.g=u.b=1-bi(e.positionScreen.z,st,ht),c.r=(r.r+u.r)*.5,c.g=(r.g+u.g)*.5,c.b=(r.b+u.b)*.5,ut=yr(f,r,u,c),ki(y,p,w,b,k,d,0,0,1,0,0,1,ut)):v instanceof THREE.MeshNormalMaterial&&(i.r=lr(a.normalWorld.x),i.g=lr(a.normalWorld.y),i.b=lr(a.normalWorld.z),v.wireframe?pi(i,v.wireframeLinewidth,v.wireframeLinecap,v.wireframeLinejoin):yi(i))}function tu(n,t,e,o,s,h,l,a,v){at.info.render.vertices+=4;at.info.render.faces++;vt(a.opacity);lt(a.blending);a.map||a.envMap?(wr(n,t,o,0,1,3,l,a,v),wr(s,e,h,1,2,3,l,a,v)):(y=n.positionScreen.x,p=n.positionScreen.y,w=t.positionScreen.x,b=t.positionScreen.y,k=e.positionScreen.x,d=e.positionScreen.y,et=o.positionScreen.x,ot=o.positionScreen.y,dt=s.positionScreen.x,gt=s.positionScreen.y,ni=h.positionScreen.x,ti=h.positionScreen.y,a instanceof THREE.MeshBasicMaterial)?(vr(y,p,w,b,k,d,et,ot),a.wireframe?pi(a.color,a.wireframeLinewidth,a.wireframeLinecap,a.wireframeLinejoin):yi(a.color)):a instanceof THREE.MeshLambertMaterial?ir?!a.wireframe&&a.shading==THREE.SmoothShading&&l.vertexNormalsWorld.length==4?(f.r=r.r=u.r=c.r=nt.r,f.g=r.g=u.g=c.g=nt.g,f.b=r.b=u.b=c.b=nt.b,vi(rt,l.v1.positionWorld,l.vertexNormalsWorld[0],f),vi(rt,l.v2.positionWorld,l.vertexNormalsWorld[1],r),vi(rt,l.v4.positionWorld,l.vertexNormalsWorld[3],u),vi(rt,l.v3.positionWorld,l.vertexNormalsWorld[2],c),f.r=Math.max(0,Math.min(a.color.r*f.r,1)),f.g=Math.max(0,Math.min(a.color.g*f.g,1)),f.b=Math.max(0,Math.min(a.color.b*f.b,1)),r.r=Math.max(0,Math.min(a.color.r*r.r,1)),r.g=Math.max(0,Math.min(a.color.g*r.g,1)),r.b=Math.max(0,Math.min(a.color.b*r.b,1)),u.r=Math.max(0,Math.min(a.color.r*u.r,1)),u.g=Math.max(0,Math.min(a.color.g*u.g,1)),u.b=Math.max(0,Math.min(a.color.b*u.b,1)),c.r=Math.max(0,Math.min(a.color.r*c.r,1)),c.g=Math.max(0,Math.min(a.color.g*c.g,1)),c.b=Math.max(0,Math.min(a.color.b*c.b,1)),ut=yr(f,r,u,c),ar(y,p,w,b,et,ot),ki(y,p,w,b,et,ot,0,0,1,0,0,1,ut),ar(dt,gt,k,d,ni,ti),ki(dt,gt,k,d,ni,ti,1,0,1,1,0,1,ut)):(i.r=nt.r,i.g=nt.g,i.b=nt.b,vi(rt,l.centroidWorld,l.normalWorld,i),i.r=Math.max(0,Math.min(a.color.r*i.r,1)),i.g=Math.max(0,Math.min(a.color.g*i.g,1)),i.b=Math.max(0,Math.min(a.color.b*i.b,1)),vr(y,p,w,b,k,d,et,ot),a.wireframe?pi(i,a.wireframeLinewidth,a.wireframeLinecap,a.wireframeLinejoin):yi(i)):(vr(y,p,w,b,k,d,et,ot),a.wireframe?pi(a.color,a.wireframeLinewidth,a.wireframeLinecap,a.wireframeLinejoin):yi(a.color)):a instanceof THREE.MeshNormalMaterial?(i.r=lr(l.normalWorld.x),i.g=lr(l.normalWorld.y),i.b=lr(l.normalWorld.z),vr(y,p,w,b,k,d,et,ot),a.wireframe?pi(i,a.wireframeLinewidth,a.wireframeLinecap,a.wireframeLinejoin):yi(i)):a instanceof THREE.MeshDepthMaterial&&(st=yt.near,ht=yt.far,f.r=f.g=f.b=1-bi(n.positionScreen.z,st,ht),r.r=r.g=r.b=1-bi(t.positionScreen.z,st,ht),u.r=u.g=u.b=1-bi(o.positionScreen.z,st,ht),c.r=c.g=c.b=1-bi(e.positionScreen.z,st,ht),ut=yr(f,r,u,c),ar(y,p,w,b,et,ot),ki(y,p,w,b,et,ot,0,0,1,0,0,1,ut),ar(dt,gt,k,d,ni,ti),ki(dt,gt,k,d,ni,ti,1,0,1,1,0,1,ut))}function ar(n,i,r,u,f,e){t.beginPath();t.moveTo(n,i);t.lineTo(r,u);t.lineTo(f,e);t.lineTo(n,i);t.closePath()}function vr(n,i,r,u,f,e,o,s){t.beginPath();t.moveTo(n,i);t.lineTo(r,u);t.lineTo(f,e);t.lineTo(o,s);t.lineTo(n,i);t.closePath()}function pi(n,i,r,u){wt!=i&&(t.lineWidth=wt=i);bt!=r&&(t.lineCap=bt=r);kt!=u&&(t.lineJoin=kt=u);ci(n.getContextStyle());t.stroke();a.inflate(i*2)}function yi(n){fi(n.getContextStyle());t.fill()}function br(n,r,u,f,e,o,s,h,c,l,a,v,y){var p,w;if(y.image.width!=0){(y.needsUpdate==!0||nr[y.id]==void 0)&&(p=y.wrapS==THREE.RepeatWrapping,w=y.wrapT==THREE.RepeatWrapping,nr[y.id]=t.createPattern(y.image,p&&w?"repeat":p&&!w?"repeat-x":!p&&w?"repeat-y":"no-repeat"),y.needsUpdate=!1);fi(nr[y.id]);var p=y.offset.x/y.repeat.x,w=y.offset.y/y.repeat.y,b=y.image.width*y.repeat.x,k=y.image.height*y.repeat.y,s=(s+p)*b,h=(h+w)*k,c=(c+p)*b,l=(l+w)*k,a=(a+p)*b,v=(v+w)*k;u-=n;f-=r;e-=n;o-=r;c-=s;l-=h;a-=s;v-=h;p=c*v-a*l;p==0?(tr[y.id]==void 0&&(r=document.createElement("canvas"),r.width=y.image.width,r.height=y.image.height,n=r.getContext("2d"),n.drawImage(y.image,0,0),tr[y.id]=n.getImageData(0,0,y.image.width,y.image.height).data,delete r),r=tr[y.id],s=(Math.floor(s)+Math.floor(h)*y.image.width)*4,i.setRGB(r[s]/255,r[s+1]/255,r[s+2]/255),yi(i)):(p=1/p,y=(v*u-l*e)*p,l=(v*f-l*o)*p,u=(c*e-a*u)*p,f=(c*o-a*f)*p,n=n-y*s-u*h,s=r-l*s-f*h,t.save(),t.transform(y,l,u,f,n,s),t.fill(),t.restore())}}function ki(n,i,r,u,f,e,o,s,h,c,l,a,v){var p,y;p=v.width-1;y=v.height-1;o*=p;s*=y;h*=p;c*=y;l*=p;a*=y;r-=n;u-=i;f-=n;e-=i;h-=o;c-=s;l-=o;a-=s;y=1/(h*a-l*c);p=(a*r-c*f)*y;c=(a*u-c*e)*y;r=(h*f-l*r)*y;u=(h*e-l*u)*y;n=n-p*o-r*s;i=i-c*o-u*s;t.save();t.transform(p,c,r,u,n,i);t.clip();t.drawImage(v,0,0);t.restore()}function yr(n,t,i,r){var u=~~(n.r*255),f=~~(n.g*255),n=~~(n.b*255),e=~~(t.r*255),o=~~(t.g*255),t=~~(t.b*255),s=~~(i.r*255),h=~~(i.g*255),i=~~(i.b*255),c=~~(r.r*255),l=~~(r.g*255),r=~~(r.b*255);return it[0]=u<0?0:u>255?255:u,it[1]=f<0?0:f>255?255:f,it[2]=n<0?0:n>255?255:n,it[4]=e<0?0:e>255?255:e,it[5]=o<0?0:o>255?255:o,it[6]=t<0?0:t>255?255:t,it[8]=s<0?0:s>255?255:s,it[9]=h<0?0:h>255?255:h,it[10]=i<0?0:i>255?255:i,it[12]=c<0?0:c>255?255:c,it[13]=l<0?0:l>255?255:l,it[14]=r<0?0:r>255?255:r,ri.putImageData(rr,0,0),hi.drawImage(ii,0,0),ui}function bi(n,t,i){return n=(n-t)/(i-t),n*n*(3-2*n)}function lr(n){return n=(n+1)*.5,n<0?0:n>1?1:n}function wi(n,t){var i=t.x-n.x,r=t.y-n.y,u=i*i+r*r;u!=0&&(u=1/Math.sqrt(u),i*=u,r*=u,t.x+=i,t.y+=r,n.x-=i,n.y-=r)}var pr,kr,pt,ei;for(this.autoClear?this.clear():t.setTransform(1,0,0,-1,o,s),at.info.render.vertices=0,at.info.render.faces=0,li=cr.projectScene(n,yt,this.sortElements),ai=li.elements,rt=li.lights,(ir=rt.length>0)&&dr(rt),pr=0,kr=ai.length;pr<kr;pr++)(pt=ai[pr],ei=pt.material,ei=ei instanceof THREE.MeshFaceMaterial?pt.faceMaterial:ei,ei==null||ei.opacity==0)||(a.empty(),pt instanceof THREE.RenderableParticle?(e=pt,e.x*=o,e.y*=s,gr(e,pt,ei,n)):pt instanceof THREE.RenderableLine?(e=pt.v1,h=pt.v2,e.positionScreen.x*=o,e.positionScreen.y*=s,h.positionScreen.x*=o,h.positionScreen.y*=s,a.addPoint(e.positionScreen.x,e.positionScreen.y),a.addPoint(h.positionScreen.x,h.positionScreen.y),ct.intersects(a)&&nu(e,h,pt,ei,n)):pt instanceof THREE.RenderableFace3?(e=pt.v1,h=pt.v2,v=pt.v3,e.positionScreen.x*=o,e.positionScreen.y*=s,h.positionScreen.x*=o,h.positionScreen.y*=s,v.positionScreen.x*=o,v.positionScreen.y*=s,ei.overdraw&&(wi(e.positionScreen,h.positionScreen),wi(h.positionScreen,v.positionScreen),wi(v.positionScreen,e.positionScreen)),a.add3Points(e.positionScreen.x,e.positionScreen.y,h.positionScreen.x,h.positionScreen.y,v.positionScreen.x,v.positionScreen.y),ct.intersects(a)&&wr(e,h,v,0,1,2,pt,ei,n)):pt instanceof THREE.RenderableFace4&&(e=pt.v1,h=pt.v2,v=pt.v3,ft=pt.v4,e.positionScreen.x*=o,e.positionScreen.y*=s,h.positionScreen.x*=o,h.positionScreen.y*=s,v.positionScreen.x*=o,v.positionScreen.y*=s,ft.positionScreen.x*=o,ft.positionScreen.y*=s,di.positionScreen.copy(h.positionScreen),gi.positionScreen.copy(ft.positionScreen),ei.overdraw&&(wi(e.positionScreen,h.positionScreen),wi(h.positionScreen,ft.positionScreen),wi(ft.positionScreen,e.positionScreen),wi(v.positionScreen,di.positionScreen),wi(v.positionScreen,gi.positionScreen)),a.addPoint(e.positionScreen.x,e.positionScreen.y),a.addPoint(h.positionScreen.x,h.positionScreen.y),a.addPoint(v.positionScreen.x,v.positionScreen.y),a.addPoint(ft.positionScreen.x,ft.positionScreen.y),ct.intersects(a)&&tu(e,h,v,ft,di,gi,pt,ei,n)),g.addRectangle(a));t.setTransform(1,0,0,1,0,0)}};THREE.RenderableVertex=function(){this.positionWorld=new THREE.Vector3;this.positionScreen=new THREE.Vector4;this.visible=!0};THREE.RenderableVertex.prototype.copy=function(n){this.positionWorld.copy(n.positionWorld);this.positionScreen.copy(n.positionScreen)};THREE.RenderableFace3=function(){this.v1=new THREE.RenderableVertex;this.v2=new THREE.RenderableVertex;this.v3=new THREE.RenderableVertex;this.centroidWorld=new THREE.Vector3;this.centroidScreen=new THREE.Vector3;this.normalWorld=new THREE.Vector3;this.vertexNormalsWorld=[new THREE.Vector3,new THREE.Vector3,new THREE.Vector3];this.faceMaterial=this.material=null;this.uvs=[[]];this.z=null};THREE.RenderableFace4=function(){this.v1=new THREE.RenderableVertex;this.v2=new THREE.RenderableVertex;this.v3=new THREE.RenderableVertex;this.v4=new THREE.RenderableVertex;this.centroidWorld=new THREE.Vector3;this.centroidScreen=new THREE.Vector3;this.normalWorld=new THREE.Vector3;this.vertexNormalsWorld=[new THREE.Vector3,new THREE.Vector3,new THREE.Vector3,new THREE.Vector3];this.faceMaterial=this.material=null;this.uvs=[[]];this.z=null};THREE.RenderableObject=function(){this.z=this.object=null};THREE.RenderableParticle=function(){this.rotation=this.z=this.y=this.x=null;this.scale=new THREE.Vector2;this.material=null};THREE.RenderableLine=function(){this.z=null;this.v1=new THREE.RenderableVertex;this.v2=new THREE.RenderableVertex;this.material=null};Particle3D=function(n){THREE.Particle.call(this,n);this.velocity=new THREE.Vector3(0,-2,0);this.velocity.rotateX(randomRange(-45,45));this.velocity.rotateY(randomRange(0,360));this.gravity=new THREE.Vector3(0,0,0);this.drag=1};Particle3D.prototype=new THREE.Particle;Particle3D.prototype.constructor=Particle3D;Particle3D.prototype.updatePhysics=function(){this.velocity.multiplyScalar(this.drag);this.velocity.addSelf(this.gravity);this.position.addSelf(this.velocity)};TO_RADIANS=Math.PI/180;THREE.Vector3.prototype.rotateY=function(n){cosRY=Math.cos(n*TO_RADIANS);sinRY=Math.sin(n*TO_RADIANS);var t=this.z,i=this.x;this.x=i*cosRY+t*sinRY;this.z=i*-sinRY+t*cosRY};THREE.Vector3.prototype.rotateX=function(n){cosRY=Math.cos(n*TO_RADIANS);sinRY=Math.sin(n*TO_RADIANS);var t=this.z,i=this.y;this.y=i*cosRY+t*sinRY;this.z=i*-sinRY+t*cosRY};THREE.Vector3.prototype.rotateZ=function(n){cosRY=Math.cos(n*TO_RADIANS);sinRY=Math.sin(n*TO_RADIANS);var t=this.x,i=this.y;this.y=i*cosRY+t*sinRY;this.x=i*-sinRY+t*cosRY};$(function(){function p(){var e,f;for(n=new THREE.PerspectiveCamera(75,c/l,1,1e4),n.position.z=1e3,i=new THREE.Scene,i.add(n),u=new THREE.CanvasRenderer,u.setSize(c,l),e=new THREE.ParticleBasicMaterial({map:new THREE.Texture(a)}),f=0;f<v;f++)t=new Particle3D(e),t.position.x=Math.random()*2e3-1e3,t.position.y=Math.random()*2e3-1e3,t.position.z=Math.random()*2e3-1e3,t.scale.x=t.scale.y=1,i.add(t),h.push(t);r.appendChild(u.domElement);setInterval(w,25)}function w(){for(var r,t=0;t<h.length;t++){r=h[t];r.updatePhysics();with(r.position)y<-1e3&&(y+=2e3),x>1e3?x-=2e3:x<-1e3&&(x+=2e3),z>1e3?z-=2e3:z<-1e3&&(z+=2e3)}n.position.x+=(f-n.position.x)*.005;n.position.y+=(-e-n.position.y)*.005;n.lookAt(i.position);u.render(i,n)}var r=document.querySelector(".snow-container"),v;if(!/MSIE 6|MSIE 7|MSIE 8/.test(navigator.userAgent)){/MSIE 9|MSIE 10/.test(navigator.userAgent)&&$(r).css("height",$(window).height()).bind("click",function(){$(this).remove()});var c=$(r).width(),l=$(r).height(),t,n,i,u,f=0,e=0,o=window.innerWidth/2,s=window.innerHeight/2,h=[],a=new Image;a.src="../image/snow.png";v=500;p()}});

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。