From 3ee99dc4c58ffbc5eb81a92e63e75fac8f2e2289 Mon Sep 17 00:00:00 2001 From: alteredq Date: Thu, 18 Nov 2010 02:00:11 +0100 Subject: [PATCH] Added cube mapping to WebGLRenderer. Also added cube map example. Finally ;) TODO: - maybe image array loader should go into TextureCube.js so that people could just reuse the code - it may be worth to be able to specify different combination of environment map and underlying material (in single render pass), currently color/color map/environment map are multiplied, though addition also produces very interesting looking materials --- build/Three.js | 241 ++++++++--------- build/ThreeDebug.js | 245 +++++++++--------- examples/materials.html | 2 +- examples/materials_cubemap.html | 231 +++++++++++++++++ examples/materials_gl.html | 2 +- examples/materials_multimaterials.html | 6 +- examples/obj_convert_test.html | 4 +- .../textures/cube/SwedishRoyalCastle/nx.jpg | Bin 0 -> 55087 bytes .../textures/cube/SwedishRoyalCastle/ny.jpg | Bin 0 -> 26281 bytes .../textures/cube/SwedishRoyalCastle/nz.jpg | Bin 0 -> 55926 bytes .../textures/cube/SwedishRoyalCastle/px.jpg | Bin 0 -> 43656 bytes .../textures/cube/SwedishRoyalCastle/py.jpg | Bin 0 -> 6204 bytes .../textures/cube/SwedishRoyalCastle/pz.jpg | Bin 0 -> 75549 bytes src/extras/io/Loader.js | 2 +- src/materials/MeshBasicMaterial.js | 8 + src/materials/MeshLambertMaterial.js | 10 +- src/materials/MeshPhongMaterial.js | 16 +- src/materials/textures/Texture.js | 2 +- src/materials/textures/TextureCube.js | 21 ++ src/renderers/WebGLRenderer.js | 96 ++++++- utils/build.py | 2 + 21 files changed, 630 insertions(+), 258 deletions(-) create mode 100644 examples/materials_cubemap.html create mode 100644 examples/textures/cube/SwedishRoyalCastle/nx.jpg create mode 100644 examples/textures/cube/SwedishRoyalCastle/ny.jpg create mode 100644 examples/textures/cube/SwedishRoyalCastle/nz.jpg create mode 100644 examples/textures/cube/SwedishRoyalCastle/px.jpg create mode 100644 examples/textures/cube/SwedishRoyalCastle/py.jpg create mode 100644 examples/textures/cube/SwedishRoyalCastle/pz.jpg create mode 100644 src/materials/textures/TextureCube.js diff --git a/build/Three.js b/build/Three.js index 6923824a..a06033eb 100644 --- a/build/Three.js +++ b/build/Three.js @@ -1,150 +1,157 @@ // Three.js r29 - http://github.com/mrdoob/three.js var THREE=THREE||{};THREE.Color=function(a){this.autoUpdate=true;this.setHex(a)}; -THREE.Color.prototype={setRGB:function(a,b,f){this.r=a;this.g=b;this.b=f;if(this.autoUpdate){this.updateHex();this.updateStyleString()}},setHex:function(a){this.hex=~~a&16777215;if(this.autoUpdate){this.updateRGBA();this.updateStyleString()}},updateHex:function(){this.hex=~~(this.r*255)<<16^~~(this.g*255)<<8^~~(this.b*255)},updateRGBA:function(){this.r=(this.hex>>16&255)/255;this.g=(this.hex>>8&255)/255;this.b=(this.hex&255)/255},updateStyleString:function(){this.__styleString="rgb("+~~(this.r*255)+ -","+~~(this.g*255)+","+~~(this.b*255)+")"},toString:function(){return"THREE.Color ( r: "+this.r+", g: "+this.g+", b: "+this.b+", hex: "+this.hex+" )"}};THREE.Vector2=function(a,b){this.x=a||0;this.y=b||0}; -THREE.Vector2.prototype={set:function(a,b){this.x=a;this.y=b;return this},copy:function(a){this.x=a.x;this.y=a.y;return this},addSelf:function(a){this.x+=a.x;this.y+=a.y;return this},add:function(a,b){this.x=a.x+b.x;this.y=a.y+b.y;return this},subSelf:function(a){this.x-=a.x;this.y-=a.y;return this},sub:function(a,b){this.x=a.x-b.x;this.y=a.y-b.y;return this},multiplyScalar:function(a){this.x*=a;this.y*=a;return this},unit:function(){this.multiplyScalar(1/this.length());return this},length:function(){return Math.sqrt(this.x* -this.x+this.y*this.y)},lengthSq:function(){return this.x*this.x+this.y*this.y},negate:function(){this.x=-this.x;this.y=-this.y;return this},clone:function(){return new THREE.Vector2(this.x,this.y)},toString:function(){return"THREE.Vector2 ("+this.x+", "+this.y+")"}};THREE.Vector3=function(a,b,f){this.x=a||0;this.y=b||0;this.z=f||0}; -THREE.Vector3.prototype={set:function(a,b,f){this.x=a;this.y=b;this.z=f;return this},copy:function(a){this.x=a.x;this.y=a.y;this.z=a.z;return this},add:function(a,b){this.x=a.x+b.x;this.y=a.y+b.y;this.z=a.z+b.z;return this},addSelf:function(a){this.x+=a.x;this.y+=a.y;this.z+=a.z;return this},addScalar:function(a){this.x+=a;this.y+=a;this.z+=a;return this},sub:function(a,b){this.x=a.x-b.x;this.y=a.y-b.y;this.z=a.z-b.z;return this},subSelf:function(a){this.x-=a.x;this.y-=a.y;this.z-=a.z;return this}, -cross:function(a,b){this.x=a.y*b.z-a.z*b.y;this.y=a.z*b.x-a.x*b.z;this.z=a.x*b.y-a.y*b.x;return this},crossSelf:function(a){var b=this.x,f=this.y,c=this.z;this.x=f*a.z-c*a.y;this.y=c*a.x-b*a.z;this.z=b*a.y-f*a.x;return this},multiplySelf:function(a){this.x*=a.x;this.y*=a.y;this.z*=a.z;return this},multiplyScalar:function(a){this.x*=a;this.y*=a;this.z*=a;return this},divideScalar:function(a){this.x/=a;this.y/=a;this.z/=a;return this},dot:function(a){return this.x*a.x+this.y*a.y+this.z*a.z},distanceTo:function(a){return Math.sqrt(this.distanceToSquared(a))}, -distanceToSquared:function(a){var b=this.x-a.x,f=this.y-a.y;a=this.z-a.z;return b*b+f*f+a*a},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z},negate:function(){this.x=-this.x;this.y=-this.y;this.z=-this.z;return this},normalize:function(){this.length()>0?this.multiplyScalar(1/this.length()):this.multiplyScalar(0);return this},setLength:function(a){return this.normalize().multiplyScalar(a)},isZero:function(){return Math.abs(this.x)< -1.0E-4&&Math.abs(this.y)<1.0E-4&&Math.abs(this.z)<1.0E-4},clone:function(){return new THREE.Vector3(this.x,this.y,this.z)},toString:function(){return"THREE.Vector3 ( "+this.x+", "+this.y+", "+this.z+" )"}};THREE.Vector4=function(a,b,f,c){this.x=a||0;this.y=b||0;this.z=f||0;this.w=c||1}; -THREE.Vector4.prototype={set:function(a,b,f,c){this.x=a;this.y=b;this.z=f;this.w=c;return this},copy:function(a){this.x=a.x;this.y=a.y;this.z=a.z;this.w=a.w||1;return this},add:function(a,b){this.x=a.x+b.x;this.y=a.y+b.y;this.z=a.z+b.z;this.w=a.w+b.w;return this},addSelf:function(a){this.x+=a.x;this.y+=a.y;this.z+=a.z;this.w+=a.w;return this},sub:function(a,b){this.x=a.x-b.x;this.y=a.y-b.y;this.z=a.z-b.z;this.w=a.w-b.w;return this},subSelf:function(a){this.x-=a.x;this.y-=a.y;this.z-=a.z;this.w-=a.w; -return this},multiplyScalar:function(a){this.x*=a;this.y*=a;this.z*=a;this.w*=a;return this},divideScalar:function(a){this.x/=a;this.y/=a;this.z/=a;this.w/=a;return this},lerpSelf:function(a,b){this.x+=(a.x-this.x)*b;this.y+=(a.y-this.y)*b;this.z+=(a.z-this.z)*b;this.w+=(a.w-this.w)*b},clone:function(){return new THREE.Vector4(this.x,this.y,this.z,this.w)},toString:function(){return"THREE.Vector4 ("+this.x+", "+this.y+", "+this.z+", "+this.w+")"}}; -THREE.Ray=function(a,b){this.origin=a||new THREE.Vector3;this.direction=b||new THREE.Vector3}; -THREE.Ray.prototype={intersectScene:function(a){var b,f,c=a.objects,d=[];a=0;for(b=c.length;a0&&w>0&&u+w<1}var f,c,d,j,o,t,e,g,l,h, -m,r=a.geometry,n=r.vertices,p=[];f=0;for(c=r.faces.length;f= -0&&Math.min(d,e.getBottom())-Math.max(f,e.getTop())>=0};this.empty=function(){t=true;d=c=f=b=0;a()};this.isEmpty=function(){return t};this.toString=function(){return"THREE.Rectangle ( left: "+b+", right: "+c+", top: "+f+", bottom: "+d+", width: "+j+", height: "+o+" )"}};THREE.Matrix3=function(){this.m=[]};THREE.Matrix3.prototype={transpose:function(){var a;a=this.m[1];this.m[1]=this.m[3];this.m[3]=a;a=this.m[2];this.m[2]=this.m[6];this.m[6]=a;a=this.m[5];this.m[5]=this.m[7];this.m[7]=a;return this}}; +THREE.Color.prototype={setRGB:function(a,c,f){this.r=a;this.g=c;this.b=f;if(this.autoUpdate){this.updateHex();this.updateStyleString()}},setHex:function(a){this.hex=~~a&16777215;if(this.autoUpdate){this.updateRGBA();this.updateStyleString()}},updateHex:function(){this.hex=~~(this.r*255)<<16^~~(this.g*255)<<8^~~(this.b*255)},updateRGBA:function(){this.r=(this.hex>>16&255)/255;this.g=(this.hex>>8&255)/255;this.b=(this.hex&255)/255},updateStyleString:function(){this.__styleString="rgb("+~~(this.r*255)+ +","+~~(this.g*255)+","+~~(this.b*255)+")"},toString:function(){return"THREE.Color ( r: "+this.r+", g: "+this.g+", b: "+this.b+", hex: "+this.hex+" )"}};THREE.Vector2=function(a,c){this.x=a||0;this.y=c||0}; +THREE.Vector2.prototype={set:function(a,c){this.x=a;this.y=c;return this},copy:function(a){this.x=a.x;this.y=a.y;return this},addSelf:function(a){this.x+=a.x;this.y+=a.y;return this},add:function(a,c){this.x=a.x+c.x;this.y=a.y+c.y;return this},subSelf:function(a){this.x-=a.x;this.y-=a.y;return this},sub:function(a,c){this.x=a.x-c.x;this.y=a.y-c.y;return this},multiplyScalar:function(a){this.x*=a;this.y*=a;return this},unit:function(){this.multiplyScalar(1/this.length());return this},length:function(){return Math.sqrt(this.x* +this.x+this.y*this.y)},lengthSq:function(){return this.x*this.x+this.y*this.y},negate:function(){this.x=-this.x;this.y=-this.y;return this},clone:function(){return new THREE.Vector2(this.x,this.y)},toString:function(){return"THREE.Vector2 ("+this.x+", "+this.y+")"}};THREE.Vector3=function(a,c,f){this.x=a||0;this.y=c||0;this.z=f||0}; +THREE.Vector3.prototype={set:function(a,c,f){this.x=a;this.y=c;this.z=f;return this},copy:function(a){this.x=a.x;this.y=a.y;this.z=a.z;return this},add:function(a,c){this.x=a.x+c.x;this.y=a.y+c.y;this.z=a.z+c.z;return this},addSelf:function(a){this.x+=a.x;this.y+=a.y;this.z+=a.z;return this},addScalar:function(a){this.x+=a;this.y+=a;this.z+=a;return this},sub:function(a,c){this.x=a.x-c.x;this.y=a.y-c.y;this.z=a.z-c.z;return this},subSelf:function(a){this.x-=a.x;this.y-=a.y;this.z-=a.z;return this}, +cross:function(a,c){this.x=a.y*c.z-a.z*c.y;this.y=a.z*c.x-a.x*c.z;this.z=a.x*c.y-a.y*c.x;return this},crossSelf:function(a){var c=this.x,f=this.y,b=this.z;this.x=f*a.z-b*a.y;this.y=b*a.x-c*a.z;this.z=c*a.y-f*a.x;return this},multiplySelf:function(a){this.x*=a.x;this.y*=a.y;this.z*=a.z;return this},multiplyScalar:function(a){this.x*=a;this.y*=a;this.z*=a;return this},divideScalar:function(a){this.x/=a;this.y/=a;this.z/=a;return this},dot:function(a){return this.x*a.x+this.y*a.y+this.z*a.z},distanceTo:function(a){return Math.sqrt(this.distanceToSquared(a))}, +distanceToSquared:function(a){var c=this.x-a.x,f=this.y-a.y;a=this.z-a.z;return c*c+f*f+a*a},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z},negate:function(){this.x=-this.x;this.y=-this.y;this.z=-this.z;return this},normalize:function(){this.length()>0?this.multiplyScalar(1/this.length()):this.multiplyScalar(0);return this},setLength:function(a){return this.normalize().multiplyScalar(a)},isZero:function(){return Math.abs(this.x)< +1.0E-4&&Math.abs(this.y)<1.0E-4&&Math.abs(this.z)<1.0E-4},clone:function(){return new THREE.Vector3(this.x,this.y,this.z)},toString:function(){return"THREE.Vector3 ( "+this.x+", "+this.y+", "+this.z+" )"}};THREE.Vector4=function(a,c,f,b){this.x=a||0;this.y=c||0;this.z=f||0;this.w=b||1}; +THREE.Vector4.prototype={set:function(a,c,f,b){this.x=a;this.y=c;this.z=f;this.w=b;return this},copy:function(a){this.x=a.x;this.y=a.y;this.z=a.z;this.w=a.w||1;return this},add:function(a,c){this.x=a.x+c.x;this.y=a.y+c.y;this.z=a.z+c.z;this.w=a.w+c.w;return this},addSelf:function(a){this.x+=a.x;this.y+=a.y;this.z+=a.z;this.w+=a.w;return this},sub:function(a,c){this.x=a.x-c.x;this.y=a.y-c.y;this.z=a.z-c.z;this.w=a.w-c.w;return this},subSelf:function(a){this.x-=a.x;this.y-=a.y;this.z-=a.z;this.w-=a.w; +return this},multiplyScalar:function(a){this.x*=a;this.y*=a;this.z*=a;this.w*=a;return this},divideScalar:function(a){this.x/=a;this.y/=a;this.z/=a;this.w/=a;return this},lerpSelf:function(a,c){this.x+=(a.x-this.x)*c;this.y+=(a.y-this.y)*c;this.z+=(a.z-this.z)*c;this.w+=(a.w-this.w)*c},clone:function(){return new THREE.Vector4(this.x,this.y,this.z,this.w)},toString:function(){return"THREE.Vector4 ("+this.x+", "+this.y+", "+this.z+", "+this.w+")"}}; +THREE.Ray=function(a,c){this.origin=a||new THREE.Vector3;this.direction=c||new THREE.Vector3}; +THREE.Ray.prototype={intersectScene:function(a){var c,f,b=a.objects,d=[];a=0;for(c=b.length;a0&&w>0&&u+w<1}var f,b,d,j,n,t,e,g,m,h, +l,r=a.geometry,o=r.vertices,p=[];f=0;for(b=r.faces.length;f= +0&&Math.min(d,e.getBottom())-Math.max(f,e.getTop())>=0};this.empty=function(){t=true;d=b=f=c=0;a()};this.isEmpty=function(){return t};this.toString=function(){return"THREE.Rectangle ( left: "+c+", right: "+b+", top: "+f+", bottom: "+d+", width: "+j+", height: "+n+" )"}};THREE.Matrix3=function(){this.m=[]};THREE.Matrix3.prototype={transpose:function(){var a;a=this.m[1];this.m[1]=this.m[3];this.m[3]=a;a=this.m[2];this.m[2]=this.m[6];this.m[6]=a;a=this.m[5];this.m[5]=this.m[7];this.m[7]=a;return this}}; THREE.Matrix4=function(){this._x=new THREE.Vector3;this._y=new THREE.Vector3;this._z=new THREE.Vector3}; THREE.Matrix4.prototype={n11:1,n12:0,n13:0,n14:0,n21:0,n22:1,n23:0,n24:0,n31:0,n32:0,n33:1,n34:0,n41:0,n42:0,n43:0,n44:1,identity:function(){this.n11=1;this.n21=this.n14=this.n13=this.n12=0;this.n22=1;this.n32=this.n31=this.n24=this.n23=0;this.n33=1;this.n43=this.n42=this.n41=this.n34=0;this.n44=1},copy:function(a){this.n11=a.n11;this.n12=a.n12;this.n13=a.n13;this.n14=a.n14;this.n21=a.n21;this.n22=a.n22;this.n23=a.n23;this.n24=a.n24;this.n31=a.n31;this.n32=a.n32;this.n33=a.n33;this.n34=a.n34;this.n41= -a.n41;this.n42=a.n42;this.n43=a.n43;this.n44=a.n44},lookAt:function(a,b,f){var c=this._x,d=this._y,j=this._z;j.sub(a,b);j.normalize();c.cross(f,j);c.normalize();d.cross(j,c);d.normalize();this.n11=c.x;this.n12=c.y;this.n13=c.z;this.n14=-c.dot(a);this.n21=d.x;this.n22=d.y;this.n23=d.z;this.n24=-d.dot(a);this.n31=j.x;this.n32=j.y;this.n33=j.z;this.n34=-j.dot(a);this.n43=this.n42=this.n41=0;this.n44=1},transform:function(a){var b=a.x,f=a.y,c=a.z,d=a.w?a.w:1;a.x=this.n11*b+this.n12*f+this.n13*c+this.n14* -d;a.y=this.n21*b+this.n22*f+this.n23*c+this.n24*d;a.z=this.n31*b+this.n32*f+this.n33*c+this.n34*d;d=this.n41*b+this.n42*f+this.n43*c+this.n44*d;if(a.w)a.w=d;else{a.x/=d;a.y/=d;a.z/=d}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){this.n11=a.n11*b.n11+a.n12*b.n21+a.n13*b.n31+a.n14*b.n41;this.n12=a.n11*b.n12+a.n12*b.n22+a.n13*b.n32+a.n14*b.n42;this.n13=a.n11*b.n13+a.n12*b.n23+a.n13*b.n33+a.n14*b.n43;this.n14=a.n11*b.n14+a.n12*b.n24+a.n13*b.n34+a.n14*b.n44;this.n21=a.n21*b.n11+a.n22*b.n21+a.n23*b.n31+a.n24*b.n41;this.n22=a.n21*b.n12+a.n22*b.n22+a.n23*b.n32+a.n24*b.n42;this.n23=a.n21*b.n13+a.n22*b.n23+a.n23*b.n33+a.n24*b.n43;this.n24=a.n21*b.n14+a.n22*b.n24+a.n23*b.n34+a.n24*b.n44;this.n31=a.n31*b.n11+a.n32*b.n21+a.n33*b.n31+ -a.n34*b.n41;this.n32=a.n31*b.n12+a.n32*b.n22+a.n33*b.n32+a.n34*b.n42;this.n33=a.n31*b.n13+a.n32*b.n23+a.n33*b.n33+a.n34*b.n43;this.n34=a.n31*b.n14+a.n32*b.n24+a.n33*b.n34+a.n34*b.n44;this.n41=a.n41*b.n11+a.n42*b.n21+a.n43*b.n31+a.n44*b.n41;this.n42=a.n41*b.n12+a.n42*b.n22+a.n43*b.n32+a.n44*b.n42;this.n43=a.n41*b.n13+a.n42*b.n23+a.n43*b.n33+a.n44*b.n43;this.n44=a.n41*b.n14+a.n42*b.n24+a.n43*b.n34+a.n44*b.n44},multiplySelf:function(a){var b=this.n11,f=this.n12,c=this.n13,d=this.n14,j=this.n21,o=this.n22, -t=this.n23,e=this.n24,g=this.n31,l=this.n32,h=this.n33,m=this.n34,r=this.n41,n=this.n42,p=this.n43,w=this.n44;this.n11=b*a.n11+f*a.n21+c*a.n31+d*a.n41;this.n12=b*a.n12+f*a.n22+c*a.n32+d*a.n42;this.n13=b*a.n13+f*a.n23+c*a.n33+d*a.n43;this.n14=b*a.n14+f*a.n24+c*a.n34+d*a.n44;this.n21=j*a.n11+o*a.n21+t*a.n31+e*a.n41;this.n22=j*a.n12+o*a.n22+t*a.n32+e*a.n42;this.n23=j*a.n13+o*a.n23+t*a.n33+e*a.n43;this.n24=j*a.n14+o*a.n24+t*a.n34+e*a.n44;this.n31=g*a.n11+l*a.n21+h*a.n31+m*a.n41;this.n32=g*a.n12+l*a.n22+ -h*a.n32+m*a.n42;this.n33=g*a.n13+l*a.n23+h*a.n33+m*a.n43;this.n34=g*a.n14+l*a.n24+h*a.n34+m*a.n44;this.n41=r*a.n11+n*a.n21+p*a.n31+w*a.n41;this.n42=r*a.n12+n*a.n22+p*a.n32+w*a.n42;this.n43=r*a.n13+n*a.n23+p*a.n33+w*a.n43;this.n44=r*a.n14+n*a.n24+p*a.n34+w*a.n44},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},determinant:function(){return this.n14* +a.n41;this.n42=a.n42;this.n43=a.n43;this.n44=a.n44},lookAt:function(a,c,f){var b=this._x,d=this._y,j=this._z;j.sub(a,c);j.normalize();b.cross(f,j);b.normalize();d.cross(j,b);d.normalize();this.n11=b.x;this.n12=b.y;this.n13=b.z;this.n14=-b.dot(a);this.n21=d.x;this.n22=d.y;this.n23=d.z;this.n24=-d.dot(a);this.n31=j.x;this.n32=j.y;this.n33=j.z;this.n34=-j.dot(a);this.n43=this.n42=this.n41=0;this.n44=1},transform:function(a){var c=a.x,f=a.y,b=a.z,d=a.w?a.w:1;a.x=this.n11*c+this.n12*f+this.n13*b+this.n14* +d;a.y=this.n21*c+this.n22*f+this.n23*b+this.n24*d;a.z=this.n31*c+this.n32*f+this.n33*b+this.n34*d;d=this.n41*c+this.n42*f+this.n43*b+this.n44*d;if(a.w)a.w=d;else{a.x/=d;a.y/=d;a.z/=d}return a},crossVector:function(a){var c=new THREE.Vector4;c.x=this.n11*a.x+this.n12*a.y+this.n13*a.z+this.n14*a.w;c.y=this.n21*a.x+this.n22*a.y+this.n23*a.z+this.n24*a.w;c.z=this.n31*a.x+this.n32*a.y+this.n33*a.z+this.n34*a.w;c.w=a.w?this.n41*a.x+this.n42*a.y+this.n43*a.z+this.n44*a.w:1;return c},multiply:function(a, +c){this.n11=a.n11*c.n11+a.n12*c.n21+a.n13*c.n31+a.n14*c.n41;this.n12=a.n11*c.n12+a.n12*c.n22+a.n13*c.n32+a.n14*c.n42;this.n13=a.n11*c.n13+a.n12*c.n23+a.n13*c.n33+a.n14*c.n43;this.n14=a.n11*c.n14+a.n12*c.n24+a.n13*c.n34+a.n14*c.n44;this.n21=a.n21*c.n11+a.n22*c.n21+a.n23*c.n31+a.n24*c.n41;this.n22=a.n21*c.n12+a.n22*c.n22+a.n23*c.n32+a.n24*c.n42;this.n23=a.n21*c.n13+a.n22*c.n23+a.n23*c.n33+a.n24*c.n43;this.n24=a.n21*c.n14+a.n22*c.n24+a.n23*c.n34+a.n24*c.n44;this.n31=a.n31*c.n11+a.n32*c.n21+a.n33*c.n31+ +a.n34*c.n41;this.n32=a.n31*c.n12+a.n32*c.n22+a.n33*c.n32+a.n34*c.n42;this.n33=a.n31*c.n13+a.n32*c.n23+a.n33*c.n33+a.n34*c.n43;this.n34=a.n31*c.n14+a.n32*c.n24+a.n33*c.n34+a.n34*c.n44;this.n41=a.n41*c.n11+a.n42*c.n21+a.n43*c.n31+a.n44*c.n41;this.n42=a.n41*c.n12+a.n42*c.n22+a.n43*c.n32+a.n44*c.n42;this.n43=a.n41*c.n13+a.n42*c.n23+a.n43*c.n33+a.n44*c.n43;this.n44=a.n41*c.n14+a.n42*c.n24+a.n43*c.n34+a.n44*c.n44},multiplySelf:function(a){var c=this.n11,f=this.n12,b=this.n13,d=this.n14,j=this.n21,n=this.n22, +t=this.n23,e=this.n24,g=this.n31,m=this.n32,h=this.n33,l=this.n34,r=this.n41,o=this.n42,p=this.n43,w=this.n44;this.n11=c*a.n11+f*a.n21+b*a.n31+d*a.n41;this.n12=c*a.n12+f*a.n22+b*a.n32+d*a.n42;this.n13=c*a.n13+f*a.n23+b*a.n33+d*a.n43;this.n14=c*a.n14+f*a.n24+b*a.n34+d*a.n44;this.n21=j*a.n11+n*a.n21+t*a.n31+e*a.n41;this.n22=j*a.n12+n*a.n22+t*a.n32+e*a.n42;this.n23=j*a.n13+n*a.n23+t*a.n33+e*a.n43;this.n24=j*a.n14+n*a.n24+t*a.n34+e*a.n44;this.n31=g*a.n11+m*a.n21+h*a.n31+l*a.n41;this.n32=g*a.n12+m*a.n22+ +h*a.n32+l*a.n42;this.n33=g*a.n13+m*a.n23+h*a.n33+l*a.n43;this.n34=g*a.n14+m*a.n24+h*a.n34+l*a.n44;this.n41=r*a.n11+o*a.n21+p*a.n31+w*a.n41;this.n42=r*a.n12+o*a.n22+p*a.n32+w*a.n42;this.n43=r*a.n13+o*a.n23+p*a.n33+w*a.n43;this.n44=r*a.n14+o*a.n24+p*a.n34+w*a.n44},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},determinant:function(){return this.n14* this.n23*this.n32*this.n41-this.n13*this.n24*this.n32*this.n41-this.n14*this.n22*this.n33*this.n41+this.n12*this.n24*this.n33*this.n41+this.n13*this.n22*this.n34*this.n41-this.n12*this.n23*this.n34*this.n41-this.n14*this.n23*this.n31*this.n42+this.n13*this.n24*this.n31*this.n42+this.n14*this.n21*this.n33*this.n42-this.n11*this.n24*this.n33*this.n42-this.n13*this.n21*this.n34*this.n42+this.n11*this.n23*this.n34*this.n42+this.n14*this.n22*this.n31*this.n43-this.n12*this.n24*this.n31*this.n43-this.n14* -this.n21*this.n32*this.n43+this.n11*this.n24*this.n32*this.n43+this.n12*this.n21*this.n34*this.n43-this.n11*this.n22*this.n34*this.n43-this.n13*this.n22*this.n31*this.n44+this.n12*this.n23*this.n31*this.n44+this.n13*this.n21*this.n32*this.n44-this.n11*this.n23*this.n32*this.n44-this.n12*this.n21*this.n33*this.n44+this.n11*this.n22*this.n33*this.n44},transpose:function(){function a(b,f,c){var d=b[f];b[f]=b[c];b[c]=d}a(this,"n21","n12");a(this,"n31","n13");a(this,"n32","n23");a(this,"n41","n14");a(this, +this.n21*this.n32*this.n43+this.n11*this.n24*this.n32*this.n43+this.n12*this.n21*this.n34*this.n43-this.n11*this.n22*this.n34*this.n43-this.n13*this.n22*this.n31*this.n44+this.n12*this.n23*this.n31*this.n44+this.n13*this.n21*this.n32*this.n44-this.n11*this.n23*this.n32*this.n44-this.n12*this.n21*this.n33*this.n44+this.n11*this.n22*this.n33*this.n44},transpose:function(){function a(c,f,b){var d=c[f];c[f]=c[b];c[b]=d}a(this,"n21","n12");a(this,"n31","n13");a(this,"n32","n23");a(this,"n41","n14");a(this, "n42","n24");a(this,"n43","n34");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(){return[this.n11,this.n21,this.n31,this.n41,this.n12,this.n22,this.n32,this.n42,this.n13,this.n23,this.n33,this.n43,this.n14,this.n24,this.n34,this.n44]}, -toString:function(){return"| "+this.n11+" "+this.n12+" "+this.n13+" "+this.n14+" |\n| "+this.n21+" "+this.n22+" "+this.n23+" "+this.n24+" |\n| "+this.n31+" "+this.n32+" "+this.n33+" "+this.n34+" |\n| "+this.n41+" "+this.n42+" "+this.n43+" "+this.n44+" |"}};THREE.Matrix4.translationMatrix=function(a,b,f){var c=new THREE.Matrix4;c.n14=a;c.n24=b;c.n34=f;return c};THREE.Matrix4.scaleMatrix=function(a,b,f){var c=new THREE.Matrix4;c.n11=a;c.n22=b;c.n33=f;return c}; -THREE.Matrix4.rotationXMatrix=function(a){var b=new THREE.Matrix4;b.n22=b.n33=Math.cos(a);b.n32=Math.sin(a);b.n23=-b.n32;return b};THREE.Matrix4.rotationYMatrix=function(a){var b=new THREE.Matrix4;b.n11=b.n33=Math.cos(a);b.n13=Math.sin(a);b.n31=-b.n13;return b};THREE.Matrix4.rotationZMatrix=function(a){var b=new THREE.Matrix4;b.n11=b.n22=Math.cos(a);b.n21=Math.sin(a);b.n12=-b.n21;return b}; -THREE.Matrix4.rotationAxisAngleMatrix=function(a,b){var f=new THREE.Matrix4,c=Math.cos(b),d=Math.sin(b),j=1-c,o=a.x,t=a.y,e=a.z;f.n11=j*o*o+c;f.n12=j*o*t-d*e;f.n13=j*o*e+d*t;f.n21=j*o*t+d*e;f.n22=j*t*t+c;f.n23=j*t*e-d*o;f.n31=j*o*e-d*t;f.n32=j*t*e+d*o;f.n33=j*e*e+c;return f}; -THREE.Matrix4.makeInvert=function(a){var b=new THREE.Matrix4;b.n11=a.n23*a.n34*a.n42-a.n24*a.n33*a.n42+a.n24*a.n32*a.n43-a.n22*a.n34*a.n43-a.n23*a.n32*a.n44+a.n22*a.n33*a.n44;b.n12=a.n14*a.n33*a.n42-a.n13*a.n34*a.n42-a.n14*a.n32*a.n43+a.n12*a.n34*a.n43+a.n13*a.n32*a.n44-a.n12*a.n33*a.n44;b.n13=a.n13*a.n24*a.n42-a.n14*a.n23*a.n42+a.n14*a.n22*a.n43-a.n12*a.n24*a.n43-a.n13*a.n22*a.n44+a.n12*a.n23*a.n44;b.n14=a.n14*a.n23*a.n32-a.n13*a.n24*a.n32-a.n14*a.n22*a.n33+a.n12*a.n24*a.n33+a.n13*a.n22*a.n34-a.n12* -a.n23*a.n34;b.n21=a.n24*a.n33*a.n41-a.n23*a.n34*a.n41-a.n24*a.n31*a.n43+a.n21*a.n34*a.n43+a.n23*a.n31*a.n44-a.n21*a.n33*a.n44;b.n22=a.n13*a.n34*a.n41-a.n14*a.n33*a.n41+a.n14*a.n31*a.n43-a.n11*a.n34*a.n43-a.n13*a.n31*a.n44+a.n11*a.n33*a.n44;b.n23=a.n14*a.n23*a.n41-a.n13*a.n24*a.n41-a.n14*a.n21*a.n43+a.n11*a.n24*a.n43+a.n13*a.n21*a.n44-a.n11*a.n23*a.n44;b.n24=a.n13*a.n24*a.n31-a.n14*a.n23*a.n31+a.n14*a.n21*a.n33-a.n11*a.n24*a.n33-a.n13*a.n21*a.n34+a.n11*a.n23*a.n34;b.n31=a.n22*a.n34*a.n41-a.n24*a.n32* -a.n41+a.n24*a.n31*a.n42-a.n21*a.n34*a.n42-a.n22*a.n31*a.n44+a.n21*a.n32*a.n44;b.n32=a.n14*a.n32*a.n41-a.n12*a.n34*a.n41-a.n14*a.n31*a.n42+a.n11*a.n34*a.n42+a.n12*a.n31*a.n44-a.n11*a.n32*a.n44;b.n33=a.n13*a.n24*a.n41-a.n14*a.n22*a.n41+a.n14*a.n21*a.n42-a.n11*a.n24*a.n42-a.n12*a.n21*a.n44+a.n11*a.n22*a.n44;b.n34=a.n14*a.n22*a.n31-a.n12*a.n24*a.n31-a.n14*a.n21*a.n32+a.n11*a.n24*a.n32+a.n12*a.n21*a.n34-a.n11*a.n22*a.n34;b.n41=a.n23*a.n32*a.n41-a.n22*a.n33*a.n41-a.n23*a.n31*a.n42+a.n21*a.n33*a.n42+a.n22* -a.n31*a.n43-a.n21*a.n32*a.n43;b.n42=a.n12*a.n33*a.n41-a.n13*a.n32*a.n41+a.n13*a.n31*a.n42-a.n11*a.n33*a.n42-a.n12*a.n31*a.n43+a.n11*a.n32*a.n43;b.n43=a.n13*a.n22*a.n41-a.n12*a.n23*a.n41-a.n13*a.n21*a.n42+a.n11*a.n23*a.n42+a.n12*a.n21*a.n43-a.n11*a.n22*a.n43;b.n44=a.n12*a.n23*a.n31-a.n13*a.n22*a.n31+a.n13*a.n21*a.n32-a.n11*a.n23*a.n32-a.n12*a.n21*a.n33+a.n11*a.n22*a.n33;b.multiplyScalar(1/a.determinant());return b}; -THREE.Matrix4.makeInvert3x3=function(a){var b=a.flatten();a=new THREE.Matrix3;var f=b[10]*b[5]-b[6]*b[9],c=-b[10]*b[1]+b[2]*b[9],d=b[6]*b[1]-b[2]*b[5],j=-b[10]*b[4]+b[6]*b[8],o=b[10]*b[0]-b[2]*b[8],t=-b[6]*b[0]+b[2]*b[4],e=b[9]*b[4]-b[5]*b[8],g=-b[9]*b[0]+b[1]*b[8],l=b[5]*b[0]-b[1]*b[4];b=b[0]*f+b[1]*j+b[2]*e;if(b==0)throw"matrix not invertible";b=1/b;a.m[0]=b*f;a.m[1]=b*c;a.m[2]=b*d;a.m[3]=b*j;a.m[4]=b*o;a.m[5]=b*t;a.m[6]=b*e;a.m[7]=b*g;a.m[8]=b*l;return a}; -THREE.Matrix4.makeFrustum=function(a,b,f,c,d,j){var o,t,e;o=new THREE.Matrix4;t=2*d/(b-a);e=2*d/(c-f);a=(b+a)/(b-a);f=(c+f)/(c-f);c=-(j+d)/(j-d);d=-2*j*d/(j-d);o.n11=t;o.n12=0;o.n13=a;o.n14=0;o.n21=0;o.n22=e;o.n23=f;o.n24=0;o.n31=0;o.n32=0;o.n33=c;o.n34=d;o.n41=0;o.n42=0;o.n43=-1;o.n44=0;return o};THREE.Matrix4.makePerspective=function(a,b,f,c){var d;a=f*Math.tan(a*Math.PI/360);d=-a;return THREE.Matrix4.makeFrustum(d*b,a*b,d,a,f,c)}; -THREE.Matrix4.makeOrtho=function(a,b,f,c,d,j){var o,t,e,g;o=new THREE.Matrix4;t=b-a;e=f-c;g=j-d;a=(b+a)/t;f=(f+c)/e;d=(j+d)/g;o.n11=2/t;o.n12=0;o.n13=0;o.n14=-a;o.n21=0;o.n22=2/e;o.n23=0;o.n24=-f;o.n31=0;o.n32=0;o.n33=-2/g;o.n34=-d;o.n41=0;o.n42=0;o.n43=0;o.n44=1;return o}; -THREE.Vertex=function(a,b){this.position=a||new THREE.Vector3;this.positionWorld=new THREE.Vector3;this.positionScreen=new THREE.Vector4;this.normal=b||new THREE.Vector3;this.normalWorld=new THREE.Vector3;this.normalScreen=new THREE.Vector3;this.__visible=true};THREE.Vertex.prototype={toString:function(){return"THREE.Vertex ( position: "+this.position+", normal: "+this.normal+" )"}}; -THREE.Face3=function(a,b,f,c,d){this.a=a;this.b=b;this.c=f;this.centroid=new THREE.Vector3;this.normal=c instanceof THREE.Vector3?c:new THREE.Vector3;this.vertexNormals=c instanceof Array?c:[];this.material=d instanceof Array?d:[d]};THREE.Face3.prototype={toString:function(){return"THREE.Face3 ( "+this.a+", "+this.b+", "+this.c+" )"}}; -THREE.Face4=function(a,b,f,c,d,j){this.a=a;this.b=b;this.c=f;this.d=c;this.centroid=new THREE.Vector3;this.normal=d instanceof THREE.Vector3?d:new THREE.Vector3;this.vertexNormals=d instanceof Array?d:[];this.material=j instanceof Array?j:[j]};THREE.Face4.prototype={toString:function(){return"THREE.Face4 ( "+this.a+", "+this.b+", "+this.c+" "+this.d+" )"}};THREE.UV=function(a,b){this.u=a||0;this.v=b||0}; +toString:function(){return"| "+this.n11+" "+this.n12+" "+this.n13+" "+this.n14+" |\n| "+this.n21+" "+this.n22+" "+this.n23+" "+this.n24+" |\n| "+this.n31+" "+this.n32+" "+this.n33+" "+this.n34+" |\n| "+this.n41+" "+this.n42+" "+this.n43+" "+this.n44+" |"}};THREE.Matrix4.translationMatrix=function(a,c,f){var b=new THREE.Matrix4;b.n14=a;b.n24=c;b.n34=f;return b};THREE.Matrix4.scaleMatrix=function(a,c,f){var b=new THREE.Matrix4;b.n11=a;b.n22=c;b.n33=f;return b}; +THREE.Matrix4.rotationXMatrix=function(a){var c=new THREE.Matrix4;c.n22=c.n33=Math.cos(a);c.n32=Math.sin(a);c.n23=-c.n32;return c};THREE.Matrix4.rotationYMatrix=function(a){var c=new THREE.Matrix4;c.n11=c.n33=Math.cos(a);c.n13=Math.sin(a);c.n31=-c.n13;return c};THREE.Matrix4.rotationZMatrix=function(a){var c=new THREE.Matrix4;c.n11=c.n22=Math.cos(a);c.n21=Math.sin(a);c.n12=-c.n21;return c}; +THREE.Matrix4.rotationAxisAngleMatrix=function(a,c){var f=new THREE.Matrix4,b=Math.cos(c),d=Math.sin(c),j=1-b,n=a.x,t=a.y,e=a.z;f.n11=j*n*n+b;f.n12=j*n*t-d*e;f.n13=j*n*e+d*t;f.n21=j*n*t+d*e;f.n22=j*t*t+b;f.n23=j*t*e-d*n;f.n31=j*n*e-d*t;f.n32=j*t*e+d*n;f.n33=j*e*e+b;return f}; +THREE.Matrix4.makeInvert=function(a){var c=new THREE.Matrix4;c.n11=a.n23*a.n34*a.n42-a.n24*a.n33*a.n42+a.n24*a.n32*a.n43-a.n22*a.n34*a.n43-a.n23*a.n32*a.n44+a.n22*a.n33*a.n44;c.n12=a.n14*a.n33*a.n42-a.n13*a.n34*a.n42-a.n14*a.n32*a.n43+a.n12*a.n34*a.n43+a.n13*a.n32*a.n44-a.n12*a.n33*a.n44;c.n13=a.n13*a.n24*a.n42-a.n14*a.n23*a.n42+a.n14*a.n22*a.n43-a.n12*a.n24*a.n43-a.n13*a.n22*a.n44+a.n12*a.n23*a.n44;c.n14=a.n14*a.n23*a.n32-a.n13*a.n24*a.n32-a.n14*a.n22*a.n33+a.n12*a.n24*a.n33+a.n13*a.n22*a.n34-a.n12* +a.n23*a.n34;c.n21=a.n24*a.n33*a.n41-a.n23*a.n34*a.n41-a.n24*a.n31*a.n43+a.n21*a.n34*a.n43+a.n23*a.n31*a.n44-a.n21*a.n33*a.n44;c.n22=a.n13*a.n34*a.n41-a.n14*a.n33*a.n41+a.n14*a.n31*a.n43-a.n11*a.n34*a.n43-a.n13*a.n31*a.n44+a.n11*a.n33*a.n44;c.n23=a.n14*a.n23*a.n41-a.n13*a.n24*a.n41-a.n14*a.n21*a.n43+a.n11*a.n24*a.n43+a.n13*a.n21*a.n44-a.n11*a.n23*a.n44;c.n24=a.n13*a.n24*a.n31-a.n14*a.n23*a.n31+a.n14*a.n21*a.n33-a.n11*a.n24*a.n33-a.n13*a.n21*a.n34+a.n11*a.n23*a.n34;c.n31=a.n22*a.n34*a.n41-a.n24*a.n32* +a.n41+a.n24*a.n31*a.n42-a.n21*a.n34*a.n42-a.n22*a.n31*a.n44+a.n21*a.n32*a.n44;c.n32=a.n14*a.n32*a.n41-a.n12*a.n34*a.n41-a.n14*a.n31*a.n42+a.n11*a.n34*a.n42+a.n12*a.n31*a.n44-a.n11*a.n32*a.n44;c.n33=a.n13*a.n24*a.n41-a.n14*a.n22*a.n41+a.n14*a.n21*a.n42-a.n11*a.n24*a.n42-a.n12*a.n21*a.n44+a.n11*a.n22*a.n44;c.n34=a.n14*a.n22*a.n31-a.n12*a.n24*a.n31-a.n14*a.n21*a.n32+a.n11*a.n24*a.n32+a.n12*a.n21*a.n34-a.n11*a.n22*a.n34;c.n41=a.n23*a.n32*a.n41-a.n22*a.n33*a.n41-a.n23*a.n31*a.n42+a.n21*a.n33*a.n42+a.n22* +a.n31*a.n43-a.n21*a.n32*a.n43;c.n42=a.n12*a.n33*a.n41-a.n13*a.n32*a.n41+a.n13*a.n31*a.n42-a.n11*a.n33*a.n42-a.n12*a.n31*a.n43+a.n11*a.n32*a.n43;c.n43=a.n13*a.n22*a.n41-a.n12*a.n23*a.n41-a.n13*a.n21*a.n42+a.n11*a.n23*a.n42+a.n12*a.n21*a.n43-a.n11*a.n22*a.n43;c.n44=a.n12*a.n23*a.n31-a.n13*a.n22*a.n31+a.n13*a.n21*a.n32-a.n11*a.n23*a.n32-a.n12*a.n21*a.n33+a.n11*a.n22*a.n33;c.multiplyScalar(1/a.determinant());return c}; +THREE.Matrix4.makeInvert3x3=function(a){var c=a.flatten();a=new THREE.Matrix3;var f=c[10]*c[5]-c[6]*c[9],b=-c[10]*c[1]+c[2]*c[9],d=c[6]*c[1]-c[2]*c[5],j=-c[10]*c[4]+c[6]*c[8],n=c[10]*c[0]-c[2]*c[8],t=-c[6]*c[0]+c[2]*c[4],e=c[9]*c[4]-c[5]*c[8],g=-c[9]*c[0]+c[1]*c[8],m=c[5]*c[0]-c[1]*c[4];c=c[0]*f+c[1]*j+c[2]*e;if(c==0)throw"matrix not invertible";c=1/c;a.m[0]=c*f;a.m[1]=c*b;a.m[2]=c*d;a.m[3]=c*j;a.m[4]=c*n;a.m[5]=c*t;a.m[6]=c*e;a.m[7]=c*g;a.m[8]=c*m;return a}; +THREE.Matrix4.makeFrustum=function(a,c,f,b,d,j){var n,t,e;n=new THREE.Matrix4;t=2*d/(c-a);e=2*d/(b-f);a=(c+a)/(c-a);f=(b+f)/(b-f);b=-(j+d)/(j-d);d=-2*j*d/(j-d);n.n11=t;n.n12=0;n.n13=a;n.n14=0;n.n21=0;n.n22=e;n.n23=f;n.n24=0;n.n31=0;n.n32=0;n.n33=b;n.n34=d;n.n41=0;n.n42=0;n.n43=-1;n.n44=0;return n};THREE.Matrix4.makePerspective=function(a,c,f,b){var d;a=f*Math.tan(a*Math.PI/360);d=-a;return THREE.Matrix4.makeFrustum(d*c,a*c,d,a,f,b)}; +THREE.Matrix4.makeOrtho=function(a,c,f,b,d,j){var n,t,e,g;n=new THREE.Matrix4;t=c-a;e=f-b;g=j-d;a=(c+a)/t;f=(f+b)/e;d=(j+d)/g;n.n11=2/t;n.n12=0;n.n13=0;n.n14=-a;n.n21=0;n.n22=2/e;n.n23=0;n.n24=-f;n.n31=0;n.n32=0;n.n33=-2/g;n.n34=-d;n.n41=0;n.n42=0;n.n43=0;n.n44=1;return n}; +THREE.Vertex=function(a,c){this.position=a||new THREE.Vector3;this.positionWorld=new THREE.Vector3;this.positionScreen=new THREE.Vector4;this.normal=c||new THREE.Vector3;this.normalWorld=new THREE.Vector3;this.normalScreen=new THREE.Vector3;this.__visible=true};THREE.Vertex.prototype={toString:function(){return"THREE.Vertex ( position: "+this.position+", normal: "+this.normal+" )"}}; +THREE.Face3=function(a,c,f,b,d){this.a=a;this.b=c;this.c=f;this.centroid=new THREE.Vector3;this.normal=b instanceof THREE.Vector3?b:new THREE.Vector3;this.vertexNormals=b instanceof Array?b:[];this.material=d instanceof Array?d:[d]};THREE.Face3.prototype={toString:function(){return"THREE.Face3 ( "+this.a+", "+this.b+", "+this.c+" )"}}; +THREE.Face4=function(a,c,f,b,d,j){this.a=a;this.b=c;this.c=f;this.d=b;this.centroid=new THREE.Vector3;this.normal=d instanceof THREE.Vector3?d:new THREE.Vector3;this.vertexNormals=d instanceof Array?d:[];this.material=j instanceof Array?j:[j]};THREE.Face4.prototype={toString:function(){return"THREE.Face4 ( "+this.a+", "+this.b+", "+this.c+" "+this.d+" )"}};THREE.UV=function(a,c){this.u=a||0;this.v=c||0}; THREE.UV.prototype={copy:function(a){this.u=a.u;this.v=a.v},toString:function(){return"THREE.UV ("+this.u+", "+this.v+")"}};THREE.Geometry=function(){this.vertices=[];this.faces=[];this.uvs=[]}; -THREE.Geometry.prototype={computeCentroids:function(){var a,b,f;a=0;for(b=this.faces.length;a0){this.bbox={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]};for(var a=1,b=this.vertices.length;a +THREE.Geometry.prototype={computeCentroids:function(){var a,c,f;a=0;for(c=this.faces.length;a0){this.bbox={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]};for(var a=1,c=this.vertices.length;a this.bbox.x[1])this.bbox.x[1]=vertex.position.x;if(vertex.position.ythis.bbox.y[1])this.bbox.y[1]=vertex.position.y;if(vertex.position.zthis.bbox.z[1])this.bbox.z[1]=vertex.position.z}}},toString:function(){return"THREE.Geometry ( vertices: "+this.vertices+", faces: "+this.faces+" )"}}; -THREE.Camera=function(a,b,f,c){this.position=new THREE.Vector3(0,0,0);this.target={position:new THREE.Vector3(0,0,0)};this.up=new THREE.Vector3(0,1,0);this.matrix=new THREE.Matrix4;this.projectionMatrix=THREE.Matrix4.makePerspective(a,b,f,c);this.autoUpdateMatrix=true;this.updateMatrix=function(){this.matrix.lookAt(this.position,this.target.position,this.up)};this.toString=function(){return"THREE.Camera ( "+this.position+", "+this.target.position+" )"}}; -THREE.Light=function(a){this.color=new THREE.Color(-16777216|a)};THREE.AmbientLight=function(a){THREE.Light.call(this,a)};THREE.AmbientLight.prototype=new THREE.Light;THREE.AmbientLight.prototype.constructor=THREE.AmbientLight;THREE.DirectionalLight=function(a,b){THREE.Light.call(this,a);this.position=new THREE.Vector3(0,1,0);this.intensity=b||1};THREE.DirectionalLight.prototype=new THREE.Light;THREE.DirectionalLight.prototype.constructor=THREE.DirectionalLight; -THREE.PointLight=function(a,b){THREE.Light.call(this,a);this.position=new THREE.Vector3(0,0,0);this.intensity=b||1};THREE.DirectionalLight.prototype=new THREE.Light;THREE.DirectionalLight.prototype.constructor=THREE.PointLight; +THREE.Camera=function(a,c,f,b){this.position=new THREE.Vector3(0,0,0);this.target={position:new THREE.Vector3(0,0,0)};this.up=new THREE.Vector3(0,1,0);this.matrix=new THREE.Matrix4;this.projectionMatrix=THREE.Matrix4.makePerspective(a,c,f,b);this.autoUpdateMatrix=true;this.updateMatrix=function(){this.matrix.lookAt(this.position,this.target.position,this.up)};this.toString=function(){return"THREE.Camera ( "+this.position+", "+this.target.position+" )"}}; +THREE.Light=function(a){this.color=new THREE.Color(-16777216|a)};THREE.AmbientLight=function(a){THREE.Light.call(this,a)};THREE.AmbientLight.prototype=new THREE.Light;THREE.AmbientLight.prototype.constructor=THREE.AmbientLight;THREE.DirectionalLight=function(a,c){THREE.Light.call(this,a);this.position=new THREE.Vector3(0,1,0);this.intensity=c||1};THREE.DirectionalLight.prototype=new THREE.Light;THREE.DirectionalLight.prototype.constructor=THREE.DirectionalLight; +THREE.PointLight=function(a,c){THREE.Light.call(this,a);this.position=new THREE.Vector3(0,0,0);this.intensity=c||1};THREE.DirectionalLight.prototype=new THREE.Light;THREE.DirectionalLight.prototype.constructor=THREE.PointLight; THREE.Object3D=function(){this.position=new THREE.Vector3;this.rotation=new THREE.Vector3;this.scale=new THREE.Vector3(1,1,1);this.matrix=new THREE.Matrix4;this.matrixTranslation=new THREE.Matrix4;this.matrixRotation=new THREE.Matrix4;this.matrixScale=new THREE.Matrix4;this.screen=new THREE.Vector3;this.autoUpdateMatrix=true;this.updateMatrix=function(){this.matrixPosition=THREE.Matrix4.translationMatrix(this.position.x,this.position.y,this.position.z);this.matrixRotation=THREE.Matrix4.rotationXMatrix(this.rotation.x); this.matrixRotation.multiplySelf(THREE.Matrix4.rotationYMatrix(this.rotation.y));this.matrixRotation.multiplySelf(THREE.Matrix4.rotationZMatrix(this.rotation.z));this.matrixScale=THREE.Matrix4.scaleMatrix(this.scale.x,this.scale.y,this.scale.z);this.matrix.copy(this.matrixPosition);this.matrix.multiplySelf(this.matrixRotation);this.matrix.multiplySelf(this.matrixScale)}};THREE.Particle=function(a){THREE.Object3D.call(this);this.material=a instanceof Array?a:[a];this.autoUpdateMatrix=false}; -THREE.Particle.prototype=new THREE.Object3D;THREE.Particle.prototype.constructor=THREE.Particle;THREE.Line=function(a,b){THREE.Object3D.call(this);this.geometry=a;this.material=b instanceof Array?b:[b]};THREE.Line.prototype=new THREE.Object3D;THREE.Line.prototype.constructor=THREE.Line; -THREE.Mesh=function(a,b,f){THREE.Object3D.call(this);this.geometry=a;this.material=b instanceof Array?b:[b];this.overdraw=this.doubleSided=this.flipSided=false;this.materialFaceGroup={};this.sortFacesByMaterial();f&&this.normalizeUVs();this.geometry.computeBoundingBox()};THREE.Mesh.prototype=new THREE.Object3D;THREE.Mesh.prototype.constructor=THREE.Mesh; -THREE.Mesh.prototype.sortFacesByMaterial=function(){function a(l){var h=[];b=0;for(f=l.length;b65535){g[t].counter+=1;e=g[t].hash+"_"+g[t].counter;if(this.materialFaceGroup[e]==undefined)this.materialFaceGroup[e]={faces:[],material:o,vertices:0}}this.materialFaceGroup[e].faces.push(c);this.materialFaceGroup[e].vertices+=j}};THREE.Mesh.prototype.normalizeUVs=function(){var a,b,f,c,d;a=0;for(b=this.geometry.uvs.length;a65535){g[t].counter+=1;e=g[t].hash+"_"+g[t].counter;if(this.materialFaceGroup[e]==undefined)this.materialFaceGroup[e]={faces:[],material:n,vertices:0}}this.materialFaceGroup[e].faces.push(b);this.materialFaceGroup[e].vertices+=j}};THREE.Mesh.prototype.normalizeUVs=function(){var a,c,f,b,d;a=0;for(c=this.geometry.uvs.length;acolor: "+this.color+"
opacity: "+this.opacity+"
blending: "+this.blending+"
linewidth: "+ this.linewidth+"
)"}}; -THREE.MeshBasicMaterial=function(a){this.id=THREE.MeshBasicMaterialCounter.value++;this.color=new THREE.Color(15658734);this.map=null;this.opacity=1;this.blending=THREE.NormalBlending;this.wireframe=false;this.wireframe_linewidth=1;if(a){a.color!==undefined&&this.color.setHex(a.color);if(a.map!==undefined)this.map=a.map;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.blending!==undefined)this.blending=a.blending;if(a.wireframe!==undefined)this.wireframe=a.wireframe;if(a.wireframe_linewidth!== -undefined)this.wireframe_linewidth=a.wireframe_linewidth}this.toString=function(){return"THREE.MeshBasicMaterial (
id: "+this.id+"
color: "+this.color+"
map: "+this.map+"
opacity: "+this.opacity+"
blending: "+this.blending+"
wireframe: "+this.wireframe+"
wireframe_linewidth: "+this.wireframe_linewidth+"
)"}};THREE.MeshBasicMaterialCounter={value:0}; -THREE.MeshLambertMaterial=function(a){this.id=THREE.MeshLambertMaterialCounter.value++;this.color=new THREE.Color(15658734);this.map=null;this.opacity=1;this.shading=THREE.SmoothShading;this.blending=THREE.NormalBlending;this.wireframe=false;this.wireframe_linewidth=1;if(a){a.color!==undefined&&this.color.setHex(a.color);if(a.map!==undefined)this.map=a.map;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.shading!==undefined)this.shading=a.shading;if(a.blending!==undefined)this.blending=a.blending; -if(a.wireframe!==undefined)this.wireframe=a.wireframe;if(a.wireframe_linewidth!==undefined)this.wireframe_linewidth=a.wireframe_linewidth}this.toString=function(){return"THREE.MeshLambertMaterial (
id: "+this.id+"
color: "+this.color+"
map: "+this.map+"
opacity: "+this.opacity+"
shading: "+this.shading+"
blending: "+this.blending+"
wireframe: "+this.wireframe+"
wireframe_size: "+this.wireframe_linewidth+"
)"}};THREE.MeshLambertMaterialCounter={value:0}; -THREE.MeshPhongMaterial=function(a){this.id=THREE.MeshPhongMaterialCounter.value++;this.color=new THREE.Color(15658734);this.map=null;this.ambient=new THREE.Color(328965);this.specular=new THREE.Color(1118481);this.specular_map=null;this.shininess=30;this.opacity=1;this.shading=THREE.SmoothShading;this.blending=THREE.NormalBlending;this.wireframe=false;this.wireframe_linewidth=1;if(a){if(a.color!==undefined)this.color=new THREE.Color(a.color);if(a.map!==undefined)this.map=a.map;if(a.ambient!==undefined)this.ambient= -new THREE.Color(a.ambient);if(a.specular!==undefined)this.specular=new THREE.Color(a.specular);if(a.specular_map!==undefined)this.specular_map=a.specular_map;if(a.shininess!==undefined)this.shininess=a.shininess;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.shading!==undefined)this.shading=a.shading;if(a.blending!==undefined)this.blending=a.blending;if(a.wireframe!==undefined)this.wireframe=a.wireframe;if(a.wireframe_linewidth!==undefined)this.wireframe_linewidth=a.wireframe_linewidth}this.toString= -function(){return"THREE.MeshPhongMaterial (
id: "+this.id+"
color: "+this.color+"
map: "+this.map+"
ambient: "+this.ambient+"
specular: "+this.specular+"
specular_map: "+this.specular_map+"
shininess: "+this.shininess+"
alpha: "+this.opacity+"
shading: "+this.shading+"
wireframe: "+this.wireframe+"
wireframe_linewidth: "+this.wireframe_linewidth+"
"+ +")"}};THREE.MeshPhongMaterialCounter={value:0}; +THREE.MeshBasicMaterial=function(a){this.id=THREE.MeshBasicMaterialCounter.value++;this.color=new THREE.Color(15658734);this.env_map=this.map=null;this.opacity=this.reflectivity=1;this.blending=THREE.NormalBlending;this.wireframe=false;this.wireframe_linewidth=1;if(a){a.color!==undefined&&this.color.setHex(a.color);if(a.map!==undefined)this.map=a.map;if(a.env_map!==undefined)this.env_map=a.env_map;if(a.reflectivity!==undefined)this.reflectivity=a.reflectivity;if(a.opacity!==undefined)this.opacity= +a.opacity;if(a.blending!==undefined)this.blending=a.blending;if(a.wireframe!==undefined)this.wireframe=a.wireframe;if(a.wireframe_linewidth!==undefined)this.wireframe_linewidth=a.wireframe_linewidth}this.toString=function(){return"THREE.MeshBasicMaterial (
id: "+this.id+"
color: "+this.color+"
map: "+this.map+"
env_map: "+this.env_map+"
reflectivity: "+this.reflectivity+"
opacity: "+this.opacity+"
blending: "+this.blending+"
wireframe: "+this.wireframe+"
wireframe_linewidth: "+ +this.wireframe_linewidth+"
)"}};THREE.MeshBasicMaterialCounter={value:0}; +THREE.MeshLambertMaterial=function(a){this.id=THREE.MeshLambertMaterialCounter.value++;this.color=new THREE.Color(15658734);this.env_map=this.map=null;this.opacity=this.reflectivity=1;this.shading=THREE.SmoothShading;this.blending=THREE.NormalBlending;this.wireframe=false;this.wireframe_linewidth=1;if(a){a.color!==undefined&&this.color.setHex(a.color);if(a.map!==undefined)this.map=a.map;if(a.env_map!==undefined)this.env_map=a.env_map;if(a.reflectivity!==undefined)this.reflectivity=a.reflectivity; +if(a.opacity!==undefined)this.opacity=a.opacity;if(a.shading!==undefined)this.shading=a.shading;if(a.blending!==undefined)this.blending=a.blending;if(a.wireframe!==undefined)this.wireframe=a.wireframe;if(a.wireframe_linewidth!==undefined)this.wireframe_linewidth=a.wireframe_linewidth}this.toString=function(){return"THREE.MeshLambertMaterial (
id: "+this.id+"
color: "+this.color+"
map: "+this.map+"
env_map: "+this.env_map+"
reflectivity: "+this.reflectivity+"
opacity: "+this.opacity+ +"
shading: "+this.shading+"
blending: "+this.blending+"
wireframe: "+this.wireframe+"
wireframe_size: "+this.wireframe_linewidth+"
)"}};THREE.MeshLambertMaterialCounter={value:0}; +THREE.MeshPhongMaterial=function(a){this.id=THREE.MeshPhongMaterialCounter.value++;this.color=new THREE.Color(15658734);this.map=null;this.ambient=new THREE.Color(328965);this.specular=new THREE.Color(1118481);this.env_map=this.specular_map=null;this.shininess=30;this.opacity=this.reflectivity=1;this.shading=THREE.SmoothShading;this.blending=THREE.NormalBlending;this.wireframe=false;this.wireframe_linewidth=1;if(a){if(a.color!==undefined)this.color=new THREE.Color(a.color);if(a.map!==undefined)this.map= +a.map;if(a.ambient!==undefined)this.ambient=new THREE.Color(a.ambient);if(a.specular!==undefined)this.specular=new THREE.Color(a.specular);if(a.specular_map!==undefined)this.specular_map=a.specular_map;if(a.env_map!==undefined)this.env_map=a.env_map;if(a.shininess!==undefined)this.shininess=a.shininess;if(a.reflectivity!==undefined)this.reflectivity=a.reflectivity;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.shading!==undefined)this.shading=a.shading;if(a.blending!==undefined)this.blending= +a.blending;if(a.wireframe!==undefined)this.wireframe=a.wireframe;if(a.wireframe_linewidth!==undefined)this.wireframe_linewidth=a.wireframe_linewidth}this.toString=function(){return"THREE.MeshPhongMaterial (
id: "+this.id+"
color: "+this.color+"
map: "+this.map+"
env_map: "+this.env_map+"
ambient: "+this.ambient+"
specular: "+this.specular+"
specular_map: "+this.specular_map+"
shininess: "+this.shininess+"
reflectivity: "+this.reflectivity+"
opacity: "+this.opacity+ +"
shading: "+this.shading+"
wireframe: "+this.wireframe+"
wireframe_linewidth: "+this.wireframe_linewidth+"
"+ +")"}};THREE.MeshPhongMaterialCounter={value:0}; THREE.MeshDepthMaterial=function(a){this.near=1;this.far=1E3;this.opacity=1;this.blending=THREE.NormalBlending;if(a){if(a.near!==undefined)this.near=a.near;if(a.far!==undefined)this.far=a.far;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.blending!==undefined)this.blending=a.blending}this.__2near=2*this.near;this.__farPlusNear=this.far+this.near;this.__farMinusNear=this.far-this.near;this.toString=function(){return"THREE.MeshDepthMaterial"}}; THREE.MeshNormalMaterial=function(a){this.opacity=1;this.shading=THREE.FlatShading;this.blending=THREE.NormalBlending;if(a){if(a.opacity!==undefined)this.opacity=a.opacity;if(a.shading!==undefined)this.shading=a.shading;if(a.blending!==undefined)this.blending=a.blending}this.toString=function(){return"THREE.MeshNormalMaterial"}};THREE.MeshFaceMaterial=function(){this.toString=function(){return"THREE.MeshFaceMaterial"}}; THREE.ParticleBasicMaterial=function(a){this.color=new THREE.Color(16711680);this.map=null;this.opacity=1;this.blending=THREE.NormalBlending;this.offset=new THREE.Vector2;if(a){a.color!==undefined&&this.color.setHex(a.color);if(a.map!==undefined)this.map=a.map;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.blending!==undefined)this.blending=a.blending}this.toString=function(){return"THREE.ParticleBasicMaterial (
color: "+this.color+"
map: "+this.map+"
opacity: "+this.opacity+"
blending: "+ this.blending+"
)"}};THREE.ParticleCircleMaterial=function(a){this.color=new THREE.Color(16711680);this.opacity=1;this.blending=THREE.NormalBlending;if(a){a.color!==undefined&&this.color.setHex(a.color);if(a.opacity!==undefined)this.opacity=a.opacity;if(a.blending!==undefined)this.blending=a.blending}this.toString=function(){return"THREE.ParticleCircleMaterial (
color: "+this.color+"
opacity: "+this.opacity+"
blending: "+this.blending+"
)"}}; -THREE.ParticleDOMMaterial=function(a){this.domElement=a;this.toString=function(){return"THREE.ParticleDOMMaterial ( domElement: "+this.domElement+" )"}};THREE.Texture=function(a,b){this.image=a;this.mapping=b?b:THREE.UVMapping;this.toString=function(){return"THREE.Texture (
image: "+this.image+"
mapping: "+this.mapping+"
)"}};THREE.UVMapping=0;THREE.ReflectionMap=1;THREE.CubeMap=2; +THREE.ParticleDOMMaterial=function(a){this.domElement=a;this.toString=function(){return"THREE.ParticleDOMMaterial ( domElement: "+this.domElement+" )"}};THREE.Texture=function(a,c){this.image=a;this.mapping=c?c:THREE.UVMapping;this.toString=function(){return"THREE.Texture (
image: "+this.image+"
mapping: "+this.mapping+"
)"}};THREE.UVMapping=0;THREE.ReflectionMap=1;THREE.RefractionMap=2; +THREE.TextureCube=function(a,c){this.image=a;this.mapping=c?c:THREE.ReflectionMap;this.toString=function(){return"THREE.TextureCube (
image: "+this.image+"
mapping: "+this.mapping+"
)"}}; THREE.Scene=function(){this.objects=[];this.lights=[];this.addObject=function(a){this.objects.push(a)};this.removeObject=function(a){a=this.objects.indexOf(a);a!==-1&&this.objects.splice(a,1)};this.addLight=function(a){this.lights.push(a)};this.removeLight=function(a){a=this.lights.indexOf(a);a!==-1&&this.lights.splice(a,1)};this.toString=function(){return"THREE.Scene ( "+this.objects+" )"}}; -THREE.Projector=function(){function a(i,B){var q;q=0;var D=1,u=i.z+i.w,L=B.z+B.w,v=-i.z+i.w,s=-B.z+B.w;if(u>=0&&L>=0&&v>=0&&s>=0)q=true;else if(u<0&&L<0||v<0&&s<0)q=false;else{if(u<0)q=Math.max(q,u/(u-L));else if(L<0)D=Math.min(D,u/(u-L));if(v<0)q=Math.max(q,v/(v-s));else if(s<0)D=Math.min(D,v/(v-s));if(D0&&F.z<1}X=s.geometry.faces;u=0;for(L=X.length;u< -L;u++){F=X[u];if(F instanceof THREE.Face3){Q=M[F.a];y=M[F.b];N=M[F.c];if(Q.__visible&&y.__visible&&N.__visible)if(s.doubleSided||s.flipSided!=(N.positionScreen.x-Q.positionScreen.x)*(y.positionScreen.y-Q.positionScreen.y)-(N.positionScreen.y-Q.positionScreen.y)*(y.positionScreen.x-Q.positionScreen.x)<0){f=d[c]=d[c]||new THREE.RenderableFace3;f.v1.positionScreen.copy(Q.positionScreen);f.v2.positionScreen.copy(y.positionScreen);f.v3.positionScreen.copy(N.positionScreen);f.normalWorld.copy(F.normal); -s.matrixRotation.transform(f.normalWorld);f.centroidWorld.copy(F.centroid);x.transform(f.centroidWorld);f.centroidScreen.copy(f.centroidWorld);p.transform(f.centroidScreen);f.z=f.centroidScreen.z;f.meshMaterial=s.material;f.faceMaterial=F.material;f.overdraw=s.overdraw;f.uvs=s.geometry.uvs[u];f.color=F.color;b.push(f);c++}}else if(F instanceof THREE.Face4){Q=M[F.a];y=M[F.b];N=M[F.c];K=M[F.d];if(Q.__visible&&y.__visible&&N.__visible&&K.__visible)if(s.doubleSided||s.flipSided!=((K.positionScreen.x- -Q.positionScreen.x)*(y.positionScreen.y-Q.positionScreen.y)-(K.positionScreen.y-Q.positionScreen.y)*(y.positionScreen.x-Q.positionScreen.x)<0||(y.positionScreen.x-N.positionScreen.x)*(K.positionScreen.y-N.positionScreen.y)-(y.positionScreen.y-N.positionScreen.y)*(K.positionScreen.x-N.positionScreen.x)<0)){j=t[o]=t[o]||new THREE.RenderableFace4;j.v1.positionScreen.copy(Q.positionScreen);j.v2.positionScreen.copy(y.positionScreen);j.v3.positionScreen.copy(N.positionScreen);j.v4.positionScreen.copy(K.positionScreen); -j.normalWorld.copy(F.normal);s.matrixRotation.transform(j.normalWorld);j.centroidWorld.copy(F.centroid);x.transform(j.centroidWorld);j.centroidScreen.copy(j.centroidWorld);p.transform(j.centroidScreen);j.z=j.centroidScreen.z;j.meshMaterial=s.material;j.faceMaterial=F.material;j.overdraw=s.overdraw;j.uvs=s.geometry.uvs[u];j.color=F.color;b.push(j);o++}}}}else if(s instanceof THREE.Line){w.multiply(p,x);M=s.geometry.vertices;u=0;for(L=M.length;u0&&n.z<1){h=r[m]=r[m]||new THREE.RenderableParticle;h.x=n.x/n.w;h.y=n.y/n.w;h.z= -n.z;h.rotation=s.rotation.z;h.scale.x=s.scale.x*Math.abs(h.x-(n.x+B.projectionMatrix.n11)/(n.w+B.projectionMatrix.n14));h.scale.y=s.scale.y*Math.abs(h.y-(n.y+B.projectionMatrix.n22)/(n.w+B.projectionMatrix.n24));h.material=s.material;b.push(h);m++}}}b.sort(function(V,C){return C.z-V.z});return b};this.unprojectVector=function(i,B){var q=new THREE.Matrix4;q.multiply(THREE.Matrix4.makeInvert(B.matrix),THREE.Matrix4.makeInvert(B.projectionMatrix));q.transform(i);return i}}; -THREE.DOMRenderer=function(){THREE.Renderer.call(this);var a=null,b=new THREE.Projector,f,c,d,j;this.domElement=document.createElement("div");this.setSize=function(o,t){f=o;c=t;d=f/2;j=c/2};this.render=function(o,t){var e,g,l,h,m,r,n,p;a=b.projectScene(o,t);e=0;for(g=a.length;e0){I.r+=H.r*k;I.g+=H.g*k;I.b+=H.b*k}}else if(k instanceof THREE.PointLight){Ha.sub(k.position,O.centroidWorld);Ha.normalize();k=O.normalWorld.dot(Ha)*k.intensity;if(k>0){I.r+=H.r*k;I.g+=H.g*k;I.b+=H.b*k}}}}function b(G,O,I,J,k,H){Y=G.positionScreen.x;Z=G.positionScreen.y;Q=O.positionScreen.x; -y=O.positionScreen.y;N=I.positionScreen.x;K=I.positionScreen.y;if(k.opacity!=B)i.globalAlpha=B=k.opacity;k.blending!=q&&o(k.blending);if(k.map){fa=k.map.image;oa=fa.width-1;pa=fa.height-1;da.u=J.uvs[0].u*oa;da.v=J.uvs[0].v*pa;$.u=J.uvs[1].u*oa;$.v=J.uvs[1].v*pa;ea.u=J.uvs[2].u*oa;ea.v=J.uvs[2].v*pa;j(fa,Y,Z,Q,y,N,K,da.u,da.v,$.u,$.v,ea.u,ea.v)}else if(k instanceof THREE.MeshBasicMaterial)c(Y,Z,Q,y,N,K,k.color,k.wireframe,k.wireframe_linewidth);else if(k instanceof THREE.MeshLambertMaterial){if(Da){ba.r= -ga.r;ba.g=ga.g;ba.b=ga.b;a(H,J,ba);R.r=k.color.r*ba.r;R.g=k.color.g*ba.g;R.b=k.color.b*ba.b;R.updateStyleString()}else R.__styleString=k.color.__styleString;c(Y,Z,Q,y,N,K,R,k.wireframe,k.wireframe_linewidth)}else if(k instanceof THREE.MeshDepthMaterial){qa=k.__2near;ra=k.__farPlusNear;sa=k.__farMinusNear;U=~~((1-qa/(ra-G.positionScreen.z*sa))*255);ha=~~((1-qa/(ra-O.positionScreen.z*sa))*255);ma=~~((1-qa/(ra-I.positionScreen.z*sa))*255);fa=t([U,U,U],[ha,ha,ha],[ma,ma,ma],[ma,ma,ma]);da.u=0;da.v=0; -$.u=ka;$.v=0;ea.u=0;ea.v=ka;j(fa,Y,Z,Q,y,N,K,da.u,da.v,$.u,$.v,ea.u,ea.v)}else if(k instanceof THREE.MeshNormalMaterial){R.r=e(J.normalWorld.x);R.g=e(J.normalWorld.y);R.b=e(J.normalWorld.z);R.updateStyleString();c(Y,Z,Q,y,N,K,R,k.wireframe,k.wireframe_linewidth)}}function f(G,O,I,J,k,H,S,z,T){Y=G.positionScreen.x;Z=G.positionScreen.y;Q=O.positionScreen.x;y=O.positionScreen.y;N=I.positionScreen.x;K=I.positionScreen.y;V=J.positionScreen.x;C=J.positionScreen.y;A=k.positionScreen.x;W=k.positionScreen.y; -na=H.positionScreen.x;P=H.positionScreen.y;if(z.opacity!=B)i.globalAlpha=B=z.opacity;z.blending!=q&&o(z.blending);if(z.map){fa=z.map.image;oa=fa.width-1;pa=fa.height-1;da.copy(S.uvs[0]);$.copy(S.uvs[1]);ea.copy(S.uvs[2]);ia.copy(S.uvs[3]);da.u*=oa;da.v*=pa;$.u*=oa;$.v*=pa;ea.u*=oa;ea.v*=pa;ia.u*=oa;ia.v*=pa;j(fa,Y,Z,Q,y,V,C,da.u,da.v,$.u,$.v,ia.u,ia.v);j(fa,A,W,N,K,na,P,$.u,$.v,ea.u,ea.v,ia.u,ia.v)}else if(z instanceof THREE.MeshBasicMaterial)d(Y,Z,Q,y,N,K,V,C,z.color,z.wireframe,z.wireframe_linewidth); +THREE.Projector=function(){function a(i,B){var q;q=0;var D=1,u=i.z+i.w,L=B.z+B.w,v=-i.z+i.w,s=-B.z+B.w;if(u>=0&&L>=0&&v>=0&&s>=0)q=true;else if(u<0&&L<0||v<0&&s<0)q=false;else{if(u<0)q=Math.max(q,u/(u-L));else if(L<0)D=Math.min(D,u/(u-L));if(v<0)q=Math.max(q,v/(v-s));else if(s<0)D=Math.min(D,v/(v-s));if(D0&&F.z<1}X=s.geometry.faces;u=0;for(L=X.length;u< +L;u++){F=X[u];if(F instanceof THREE.Face3){Q=M[F.a];y=M[F.b];N=M[F.c];if(Q.__visible&&y.__visible&&N.__visible)if(s.doubleSided||s.flipSided!=(N.positionScreen.x-Q.positionScreen.x)*(y.positionScreen.y-Q.positionScreen.y)-(N.positionScreen.y-Q.positionScreen.y)*(y.positionScreen.x-Q.positionScreen.x)<0){f=d[b]=d[b]||new THREE.RenderableFace3;f.v1.positionScreen.copy(Q.positionScreen);f.v2.positionScreen.copy(y.positionScreen);f.v3.positionScreen.copy(N.positionScreen);f.normalWorld.copy(F.normal); +s.matrixRotation.transform(f.normalWorld);f.centroidWorld.copy(F.centroid);x.transform(f.centroidWorld);f.centroidScreen.copy(f.centroidWorld);p.transform(f.centroidScreen);f.z=f.centroidScreen.z;f.meshMaterial=s.material;f.faceMaterial=F.material;f.overdraw=s.overdraw;f.uvs=s.geometry.uvs[u];f.color=F.color;c.push(f);b++}}else if(F instanceof THREE.Face4){Q=M[F.a];y=M[F.b];N=M[F.c];K=M[F.d];if(Q.__visible&&y.__visible&&N.__visible&&K.__visible)if(s.doubleSided||s.flipSided!=((K.positionScreen.x- +Q.positionScreen.x)*(y.positionScreen.y-Q.positionScreen.y)-(K.positionScreen.y-Q.positionScreen.y)*(y.positionScreen.x-Q.positionScreen.x)<0||(y.positionScreen.x-N.positionScreen.x)*(K.positionScreen.y-N.positionScreen.y)-(y.positionScreen.y-N.positionScreen.y)*(K.positionScreen.x-N.positionScreen.x)<0)){j=t[n]=t[n]||new THREE.RenderableFace4;j.v1.positionScreen.copy(Q.positionScreen);j.v2.positionScreen.copy(y.positionScreen);j.v3.positionScreen.copy(N.positionScreen);j.v4.positionScreen.copy(K.positionScreen); +j.normalWorld.copy(F.normal);s.matrixRotation.transform(j.normalWorld);j.centroidWorld.copy(F.centroid);x.transform(j.centroidWorld);j.centroidScreen.copy(j.centroidWorld);p.transform(j.centroidScreen);j.z=j.centroidScreen.z;j.meshMaterial=s.material;j.faceMaterial=F.material;j.overdraw=s.overdraw;j.uvs=s.geometry.uvs[u];j.color=F.color;c.push(j);n++}}}}else if(s instanceof THREE.Line){w.multiply(p,x);M=s.geometry.vertices;u=0;for(L=M.length;u0&&o.z<1){h=r[l]=r[l]||new THREE.RenderableParticle;h.x=o.x/o.w;h.y=o.y/o.w;h.z= +o.z;h.rotation=s.rotation.z;h.scale.x=s.scale.x*Math.abs(h.x-(o.x+B.projectionMatrix.n11)/(o.w+B.projectionMatrix.n14));h.scale.y=s.scale.y*Math.abs(h.y-(o.y+B.projectionMatrix.n22)/(o.w+B.projectionMatrix.n24));h.material=s.material;c.push(h);l++}}}c.sort(function(V,C){return C.z-V.z});return c};this.unprojectVector=function(i,B){var q=new THREE.Matrix4;q.multiply(THREE.Matrix4.makeInvert(B.matrix),THREE.Matrix4.makeInvert(B.projectionMatrix));q.transform(i);return i}}; +THREE.DOMRenderer=function(){THREE.Renderer.call(this);var a=null,c=new THREE.Projector,f,b,d,j;this.domElement=document.createElement("div");this.setSize=function(n,t){f=n;b=t;d=f/2;j=b/2};this.render=function(n,t){var e,g,m,h,l,r,o,p;a=c.projectScene(n,t);e=0;for(g=a.length;e0){I.r+=H.r*k;I.g+=H.g*k;I.b+=H.b*k}}else if(k instanceof THREE.PointLight){Ha.sub(k.position,O.centroidWorld);Ha.normalize();k=O.normalWorld.dot(Ha)*k.intensity;if(k>0){I.r+=H.r*k;I.g+=H.g*k;I.b+=H.b*k}}}}function c(G,O,I,J,k,H){Y=G.positionScreen.x;Z=G.positionScreen.y;Q=O.positionScreen.x; +y=O.positionScreen.y;N=I.positionScreen.x;K=I.positionScreen.y;if(k.opacity!=B)i.globalAlpha=B=k.opacity;k.blending!=q&&n(k.blending);if(k.map){fa=k.map.image;oa=fa.width-1;pa=fa.height-1;da.u=J.uvs[0].u*oa;da.v=J.uvs[0].v*pa;$.u=J.uvs[1].u*oa;$.v=J.uvs[1].v*pa;ea.u=J.uvs[2].u*oa;ea.v=J.uvs[2].v*pa;j(fa,Y,Z,Q,y,N,K,da.u,da.v,$.u,$.v,ea.u,ea.v)}else if(k instanceof THREE.MeshBasicMaterial)b(Y,Z,Q,y,N,K,k.color,k.wireframe,k.wireframe_linewidth);else if(k instanceof THREE.MeshLambertMaterial){if(Da){ba.r= +ga.r;ba.g=ga.g;ba.b=ga.b;a(H,J,ba);R.r=k.color.r*ba.r;R.g=k.color.g*ba.g;R.b=k.color.b*ba.b;R.updateStyleString()}else R.__styleString=k.color.__styleString;b(Y,Z,Q,y,N,K,R,k.wireframe,k.wireframe_linewidth)}else if(k instanceof THREE.MeshDepthMaterial){qa=k.__2near;ra=k.__farPlusNear;sa=k.__farMinusNear;U=~~((1-qa/(ra-G.positionScreen.z*sa))*255);ha=~~((1-qa/(ra-O.positionScreen.z*sa))*255);ma=~~((1-qa/(ra-I.positionScreen.z*sa))*255);fa=t([U,U,U],[ha,ha,ha],[ma,ma,ma],[ma,ma,ma]);da.u=0;da.v=0; +$.u=ka;$.v=0;ea.u=0;ea.v=ka;j(fa,Y,Z,Q,y,N,K,da.u,da.v,$.u,$.v,ea.u,ea.v)}else if(k instanceof THREE.MeshNormalMaterial){R.r=e(J.normalWorld.x);R.g=e(J.normalWorld.y);R.b=e(J.normalWorld.z);R.updateStyleString();b(Y,Z,Q,y,N,K,R,k.wireframe,k.wireframe_linewidth)}}function f(G,O,I,J,k,H,S,z,T){Y=G.positionScreen.x;Z=G.positionScreen.y;Q=O.positionScreen.x;y=O.positionScreen.y;N=I.positionScreen.x;K=I.positionScreen.y;V=J.positionScreen.x;C=J.positionScreen.y;A=k.positionScreen.x;W=k.positionScreen.y; +na=H.positionScreen.x;P=H.positionScreen.y;if(z.opacity!=B)i.globalAlpha=B=z.opacity;z.blending!=q&&n(z.blending);if(z.map){fa=z.map.image;oa=fa.width-1;pa=fa.height-1;da.copy(S.uvs[0]);$.copy(S.uvs[1]);ea.copy(S.uvs[2]);ia.copy(S.uvs[3]);da.u*=oa;da.v*=pa;$.u*=oa;$.v*=pa;ea.u*=oa;ea.v*=pa;ia.u*=oa;ia.v*=pa;j(fa,Y,Z,Q,y,V,C,da.u,da.v,$.u,$.v,ia.u,ia.v);j(fa,A,W,N,K,na,P,$.u,$.v,ea.u,ea.v,ia.u,ia.v)}else if(z instanceof THREE.MeshBasicMaterial)d(Y,Z,Q,y,N,K,V,C,z.color,z.wireframe,z.wireframe_linewidth); else if(z instanceof THREE.MeshLambertMaterial){if(Da){ba.r=ga.r;ba.g=ga.g;ba.b=ga.b;a(T,S,ba);R.r=z.color.r*ba.r;R.g=z.color.g*ba.g;R.b=z.color.b*ba.b;R.updateStyleString()}else R.__styleString=z.color.__styleString;d(Y,Z,Q,y,N,K,V,C,R,z.wireframe,z.wireframe_linewidth)}else if(z instanceof THREE.MeshDepthMaterial){qa=z.__2near;ra=z.__farPlusNear;sa=z.__farMinusNear;U=~~((1-qa/(ra-G.positionScreen.z*sa))*255);ha=~~((1-qa/(ra-O.positionScreen.z*sa))*255);ma=~~((1-qa/(ra-I.positionScreen.z*sa))*255); -Ea=~~((1-qa/(ra-J.positionScreen.z*sa))*255);fa=t([U,U,U],[ha,ha,ha],[Ea,Ea,Ea],[ma,ma,ma]);da.u=0;da.v=0;$.u=ka;$.v=0;ea.u=ka;ea.v=ka;ia.u=0;ia.v=ka;j(fa,Y,Z,Q,y,V,C,da.u,da.v,$.u,$.v,ia.u,ia.v);j(fa,A,W,N,K,na,P,$.u,$.v,ea.u,ea.v,ia.u,ia.v)}else if(z instanceof THREE.MeshNormalMaterial){R.r=e(S.normalWorld.x);R.g=e(S.normalWorld.y);R.b=e(S.normalWorld.z);R.updateStyleString();d(Y,Z,Q,y,N,K,V,C,R,z.wireframe,z.wireframe_linewidth)}}function c(G,O,I,J,k,H,S,z,T){i.beginPath();i.moveTo(G,O);i.lineTo(I, +Ea=~~((1-qa/(ra-J.positionScreen.z*sa))*255);fa=t([U,U,U],[ha,ha,ha],[Ea,Ea,Ea],[ma,ma,ma]);da.u=0;da.v=0;$.u=ka;$.v=0;ea.u=ka;ea.v=ka;ia.u=0;ia.v=ka;j(fa,Y,Z,Q,y,V,C,da.u,da.v,$.u,$.v,ia.u,ia.v);j(fa,A,W,N,K,na,P,$.u,$.v,ea.u,ea.v,ia.u,ia.v)}else if(z instanceof THREE.MeshNormalMaterial){R.r=e(S.normalWorld.x);R.g=e(S.normalWorld.y);R.b=e(S.normalWorld.z);R.updateStyleString();d(Y,Z,Q,y,N,K,V,C,R,z.wireframe,z.wireframe_linewidth)}}function b(G,O,I,J,k,H,S,z,T){i.beginPath();i.moveTo(G,O);i.lineTo(I, J);i.lineTo(k,H);i.lineTo(G,O);i.closePath();if(z){if(L!=T)i.lineWidth=L=T;if(D!=S.__styleString)i.strokeStyle=D=S.__styleString;i.stroke();aa.inflate(T*2)}else{if(u!=S.__styleString)i.fillStyle=u=S.__styleString;i.fill()}}function d(G,O,I,J,k,H,S,z,T,E,ca){i.beginPath();i.moveTo(G,O);i.lineTo(I,J);i.lineTo(k,H);i.lineTo(S,z);i.lineTo(G,O);i.closePath();if(E){if(L!=ca)i.lineWidth=L=ca;if(D!=T.__styleString)i.strokeStyle=D=T.__styleString;i.stroke();aa.inflate(ca*2)}else{if(u!=T.__styleString)i.fillStyle= -u=T.__styleString;i.fill()}}function j(G,O,I,J,k,H,S,z,T,E,ca,la,ta){i.beginPath();i.moveTo(O,I);i.lineTo(J,k);i.lineTo(H,S);i.closePath();J-=O;k-=I;H-=O;S-=I;E-=z;ca-=T;la-=z;ta-=T;var ua=1/(E*ta-la*ca),za=(ta*J-ca*H)*ua;ca=(ta*k-ca*S)*ua;J=(E*H-la*J)*ua;k=(E*S-la*k)*ua;O=O-za*z-J*T;I=I-ca*z-k*T;i.save();i.transform(za,ca,J,k,O,I);i.clip();i.drawImage(G,0,0);i.restore()}function o(G){switch(G){case THREE.NormalBlending:i.globalCompositeOperation="source-over";break;case THREE.AdditiveBlending:i.globalCompositeOperation= -"lighter";break;case THREE.SubtractiveBlending:i.globalCompositeOperation="darker"}q=G}function t(G,O,I,J){ja[0]=G[0];ja[1]=G[1];ja[2]=G[2];ja[4]=O[0];ja[5]=O[1];ja[6]=O[2];ja[8]=I[0];ja[9]=I[1];ja[10]=I[2];ja[12]=J[0];ja[13]=J[1];ja[14]=J[2];Aa.putImageData(Ia,0,0);Fa.drawImage(Ba,0,0);return Ca}function e(G){return G<0?Math.min((1+G)*0.5,0.5):0.5+Math.min(G*0.5,0.5)}function g(G,O){var I=O.x-G.x,J=O.y-G.y,k=1/Math.sqrt(I*I+J*J);I*=k;J*=k;O.x+=I;O.y+=J;G.x-=I;G.y-=J}var l=null,h=new THREE.Projector, -m=document.createElement("canvas"),r,n,p,w,i=m.getContext("2d"),B=1,q=0,D=null,u=null,L=1,v,s,x,M,X=new THREE.Vertex,F=new THREE.Vertex,Y,Z,Q,y,N,K,V,C,A,W,na,P,U,ha,ma,Ea,qa,ra,sa,fa,oa,pa,wa=new THREE.Rectangle,va=new THREE.Rectangle,aa=new THREE.Rectangle,Da=false,R=new THREE.Color(4294967295),ba=new THREE.Color(4294967295),ga=new THREE.Color(4278190080),xa=new THREE.Color(4278190080),ya=new THREE.Color(4278190080),Ma=Math.PI*2,Ha=new THREE.Vector3,da=new THREE.UV,$=new THREE.UV,ea=new THREE.UV, -ia=new THREE.UV,Ba,Aa,Ia,ja,Ca,Fa,ka=16;Ba=document.createElement("canvas");Ba.width=Ba.height=2;Aa=Ba.getContext("2d");Aa.fillStyle="rgba(0,0,0,1)";Aa.fillRect(0,0,2,2);Ia=Aa.getImageData(0,0,2,2);ja=Ia.data;Ca=document.createElement("canvas");Ca.width=Ca.height=ka;Fa=Ca.getContext("2d");Fa.translate(-ka/2,-ka/2);Fa.scale(ka,ka);ka--;this.domElement=m;this.autoClear=true;this.setSize=function(G,O){r=G;n=O;p=r/2;w=n/2;m.width=r;m.height=n;i.lineJoin="round";i.lineCap="round";wa.set(-p,-w,p,w)};this.clear= -function(){if(!va.isEmpty()){va.inflate(1);va.minSelf(wa);i.setTransform(1,0,0,-1,p,w);i.clearRect(va.getX(),va.getY(),va.getWidth(),va.getHeight());va.empty()}};this.render=function(G,O){var I,J,k,H,S,z,T,E;this.autoClear&&this.clear();l=h.projectScene(G,O);i.setTransform(1,0,0,-1,p,w);if(Da=G.lights.length>0){S=G.lights;ga.setRGB(0,0,0);xa.setRGB(0,0,0);ya.setRGB(0,0,0);I=0;for(J=S.length;I0){S=G.lights;ga.setRGB(0,0,0);xa.setRGB(0,0,0);ya.setRGB(0,0,0);I=0;for(J=S.length;I0){K.r+=A.color.r*W;K.g+=A.color.g*W;K.b+=A.color.b*W}}else if(A instanceof THREE.PointLight){x.sub(A.position,N.centroidWorld);x.normalize();W=N.normalWorld.dot(x)*A.intensity;if(W>0){K.r+=A.color.r*W;K.g+=A.color.g*W;K.b+=A.color.b*W}}}}function b(y,N,K,V,C,A){F=c(Y++);F.setAttribute("d","M "+y.positionScreen.x+ +THREE.SVGRenderer=function(){function a(y,N,K){var V,C,A,W;V=0;for(C=y.lights.length;V0){K.r+=A.color.r*W;K.g+=A.color.g*W;K.b+=A.color.b*W}}else if(A instanceof THREE.PointLight){x.sub(A.position,N.centroidWorld);x.normalize();W=N.normalWorld.dot(x)*A.intensity;if(W>0){K.r+=A.color.r*W;K.g+=A.color.g*W;K.b+=A.color.b*W}}}}function c(y,N,K,V,C,A){F=b(Y++);F.setAttribute("d","M "+y.positionScreen.x+ " "+y.positionScreen.y+" L "+N.positionScreen.x+" "+N.positionScreen.y+" L "+K.positionScreen.x+","+K.positionScreen.y+"z");if(C instanceof THREE.MeshBasicMaterial)q.__styleString=C.color.__styleString;else if(C instanceof THREE.MeshLambertMaterial)if(B){D.r=u.r;D.g=u.g;D.b=u.b;a(A,V,D);q.r=C.color.r*D.r;q.g=C.color.g*D.g;q.b=C.color.b*D.b;q.updateStyleString()}else q.__styleString=C.color.__styleString;else if(C instanceof THREE.MeshDepthMaterial){s=1-C.__2near/(C.__farPlusNear-V.z*C.__farMinusNear); -q.setRGB(s,s,s)}else C instanceof THREE.MeshNormalMaterial&&q.setRGB(d(V.normalWorld.x),d(V.normalWorld.y),d(V.normalWorld.z));C.wireframe?F.setAttribute("style","fill: none; stroke: "+q.__styleString+"; stroke-width: "+C.wireframe_linewidth+"; stroke-opacity: "+C.opacity+"; stroke-linecap: round; stroke-linejoin: round"):F.setAttribute("style","fill: "+q.__styleString+"; fill-opacity: "+C.opacity);t.appendChild(F)}function f(y,N,K,V,C,A,W){F=c(Y++);F.setAttribute("d","M "+y.positionScreen.x+" "+ +q.setRGB(s,s,s)}else C instanceof THREE.MeshNormalMaterial&&q.setRGB(d(V.normalWorld.x),d(V.normalWorld.y),d(V.normalWorld.z));C.wireframe?F.setAttribute("style","fill: none; stroke: "+q.__styleString+"; stroke-width: "+C.wireframe_linewidth+"; stroke-opacity: "+C.opacity+"; stroke-linecap: round; stroke-linejoin: round"):F.setAttribute("style","fill: "+q.__styleString+"; fill-opacity: "+C.opacity);t.appendChild(F)}function f(y,N,K,V,C,A,W){F=b(Y++);F.setAttribute("d","M "+y.positionScreen.x+" "+ y.positionScreen.y+" L "+N.positionScreen.x+" "+N.positionScreen.y+" L "+K.positionScreen.x+","+K.positionScreen.y+" L "+V.positionScreen.x+","+V.positionScreen.y+"z");if(A instanceof THREE.MeshBasicMaterial)q.__styleString=A.color.__styleString;else if(A instanceof THREE.MeshLambertMaterial)if(B){D.r=u.r;D.g=u.g;D.b=u.b;a(W,C,D);q.r=A.color.r*D.r;q.g=A.color.g*D.g;q.b=A.color.b*D.b;q.updateStyleString()}else q.__styleString=A.color.__styleString;else if(A instanceof THREE.MeshDepthMaterial){s=1- -A.__2near/(A.__farPlusNear-C.z*A.__farMinusNear);q.setRGB(s,s,s)}else A instanceof THREE.MeshNormalMaterial&&q.setRGB(d(C.normalWorld.x),d(C.normalWorld.y),d(C.normalWorld.z));A.wireframe?F.setAttribute("style","fill: none; stroke: "+q.__styleString+"; stroke-width: "+A.wireframe_linewidth+"; stroke-opacity: "+A.opacity+"; stroke-linecap: round; stroke-linejoin: round"):F.setAttribute("style","fill: "+q.__styleString+"; fill-opacity: "+A.opacity);t.appendChild(F)}function c(y){if(M[y]==null){M[y]= -document.createElementNS("http://www.w3.org/2000/svg","path");Q==0&&M[y].setAttribute("shape-rendering","crispEdges");return M[y]}return M[y]}function d(y){return y<0?Math.min((1+y)*0.5,0.5):0.5+Math.min(y*0.5,0.5)}var j=null,o=new THREE.Projector,t=document.createElementNS("http://www.w3.org/2000/svg","svg"),e,g,l,h,m,r,n,p,w=new THREE.Rectangle,i=new THREE.Rectangle,B=false,q=new THREE.Color(4294967295),D=new THREE.Color(4294967295),u=new THREE.Color(4278190080),L=new THREE.Color(4278190080),v= -new THREE.Color(4278190080),s,x=new THREE.Vector3,M=[],X=[],F,Y,Z,Q=1;this.domElement=t;this.autoClear=true;this.setQuality=function(y){switch(y){case "high":Q=1;break;case "low":Q=0}};this.setSize=function(y,N){e=y;g=N;l=e/2;h=g/2;t.setAttribute("viewBox",-l+" "+-h+" "+e+" "+g);t.setAttribute("width",e);t.setAttribute("height",g);w.set(-l,-h,l,h)};this.clear=function(){for(;t.childNodes.length>0;)t.removeChild(t.childNodes[0])};this.render=function(y,N){var K,V,C,A,W,na,P,U;this.autoClear&&this.clear(); -j=o.projectScene(y,N);Z=Y=0;if(B=y.lights.length>0){P=y.lights;u.setRGB(0,0,0);L.setRGB(0,0,0);v.setRGB(0,0,0);K=0;for(V=P.length;K0;)t.removeChild(t.childNodes[0])};this.render=function(y,N){var K,V,C,A,W,na,P,U;this.autoClear&&this.clear(); +j=n.projectScene(y,N);Z=Y=0;if(B=y.lights.length>0){P=y.lights;u.setRGB(0,0,0);L.setRGB(0,0,0);v.setRGB(0,0,0);K=0;for(V=P.length;K= 0.0 )": "",g?"pointSpecularWeight = pow( pointDotNormalHalf, mShininess );":"",g?"pointDiffuse += mColor * pointDiffuseWeight;":"",g?"pointSpecular += mSpecular * pointSpecularWeight;":"",g?"}":"",e?"vec4 dirDiffuse = vec4( 0.0, 0.0, 0.0, 0.0 );":"",e?"vec4 dirSpecular = vec4( 0.0, 0.0, 0.0, 0.0 );":"",e?"for( int i = 0; i < directionalLightNumber; i++ ) {":"",e?"vec4 lDirection = viewMatrix * vec4( directionalLightDirection[ i ], 0.0 );":"",e?"vec3 dirVector = normalize( lDirection.xyz );":"",e?"vec3 dirHalfVector = normalize( lDirection.xyz + vViewPosition );": "",e?"float dirDotNormalHalf = dot( normal, dirHalfVector );":"",e?"float dirDiffuseWeight = max( dot( normal, dirVector ), 0.0 );":"",e?"float dirSpecularWeight = 0.0;":"",e?"if ( dirDotNormalHalf >= 0.0 )":"",e?"dirSpecularWeight = pow( dirDotNormalHalf, mShininess );":"",e?"dirDiffuse += mColor * dirDiffuseWeight;":"",e?"dirSpecular += mSpecular * dirSpecularWeight;":"",e?"}":"","vec4 totalLight = mAmbient;",e?"totalLight += dirDiffuse + dirSpecular;":"",g?"totalLight += pointDiffuse + pointSpecular;": -"","gl_FragColor = vec4( mapColor.rgb * totalLight.xyz * vLightWeighting, mapColor.a );\n} else if ( material == 1 ) {\ngl_FragColor = vec4( mColor.rgb * mapColor.rgb * vLightWeighting, mColor.a * mapColor.a );\n} else {\ngl_FragColor = mColor * mapColor;\n}\n}"].join("\n")));c.attachShader(d,b("vertex",[e?"#define MAX_DIR_LIGHTS "+e:"",g?"#define MAX_POINT_LIGHTS "+g:"","attribute vec3 position;\nattribute vec3 normal;\nattribute vec2 uv;\nuniform vec3 cameraPosition;\nuniform bool enableLighting;\nuniform int pointLightNumber;\nuniform int directionalLightNumber;\nuniform vec3 ambientLightColor;", +"","gl_FragColor = vec4( mapColor.rgb * cubeColor.rgb * totalLight.xyz * vLightWeighting, mapColor.a );\n} else if ( material == 1 ) {\ngl_FragColor = vec4( mColor.rgb * mapColor.rgb * cubeColor.rgb * vLightWeighting, mColor.a * mapColor.a );\n} else {\ngl_FragColor = mColor * mapColor * cubeColor;\n}\n}"].join("\n")));b.attachShader(d,c("vertex",[e?"#define MAX_DIR_LIGHTS "+e:"",g?"#define MAX_POINT_LIGHTS "+g:"","attribute vec3 position;\nattribute vec3 normal;\nattribute vec2 uv;\nuniform vec3 cameraPosition;\nuniform bool enableLighting;\nuniform int pointLightNumber;\nuniform int directionalLightNumber;\nuniform vec3 ambientLightColor;", e?"uniform vec3 directionalLightColor[ MAX_DIR_LIGHTS ];":"",e?"uniform vec3 directionalLightDirection[ MAX_DIR_LIGHTS ];":"",g?"uniform vec3 pointLightColor[ MAX_POINT_LIGHTS ];":"",g?"uniform vec3 pointLightPosition[ MAX_POINT_LIGHTS ];":"","uniform mat4 objMatrix;\nuniform mat4 viewMatrix;\nuniform mat4 modelViewMatrix;\nuniform mat4 projectionMatrix;\nuniform mat3 normalMatrix;\nvarying vec3 vNormal;\nvarying vec2 vUv;\nvarying vec3 vLightWeighting;",g?"varying vec3 vPointLightVector[ MAX_POINT_LIGHTS ];": -"","varying vec3 vViewPosition;\nvarying vec3 vFragPosition;\nvoid main(void) {\nvec4 mPosition = objMatrix * vec4( position, 1.0 );\nvViewPosition = cameraPosition - mPosition.xyz;\nvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\nvec3 transformedNormal = normalize( normalMatrix * normal );\nif ( !enableLighting ) {\nvLightWeighting = vec3( 1.0, 1.0, 1.0 );\n} else {\nvLightWeighting = ambientLightColor;",e?"for( int i = 0; i < directionalLightNumber; i++ ) {":"",e?"vec4 lDirection = viewMatrix * vec4( directionalLightDirection[ i ], 0.0 );": -"",e?"float directionalLightWeighting = max( dot( transformedNormal, normalize(lDirection.xyz ) ), 0.0 );":"",e?"vLightWeighting += directionalLightColor[ i ] * directionalLightWeighting;":"",e?"}":"",g?"for( int i = 0; i < pointLightNumber; i++ ) {":"",g?"vec4 lPosition = viewMatrix * vec4( pointLightPosition[ i ], 1.0 );":"",g?"vPointLightVector[ i ] = normalize( lPosition.xyz - mvPosition.xyz );":"",g?"float pointLightWeighting = max( dot( transformedNormal, vPointLightVector[ i ] ), 0.0 );":"", -g?"vLightWeighting += pointLightColor[ i ] * pointLightWeighting;":"",g?"}":"","}\nvNormal = transformedNormal;\nvUv = uv;\ngl_Position = projectionMatrix * mvPosition;\n}"].join("\n")));c.linkProgram(d);c.getProgramParameter(d,c.LINK_STATUS)||alert("Could not initialise shaders");c.useProgram(d);d.viewMatrix=c.getUniformLocation(d,"viewMatrix");d.modelViewMatrix=c.getUniformLocation(d,"modelViewMatrix");d.projectionMatrix=c.getUniformLocation(d,"projectionMatrix");d.normalMatrix=c.getUniformLocation(d, -"normalMatrix");d.objMatrix=c.getUniformLocation(d,"objMatrix");d.cameraPosition=c.getUniformLocation(d,"cameraPosition");d.enableLighting=c.getUniformLocation(d,"enableLighting");d.ambientLightColor=c.getUniformLocation(d,"ambientLightColor");if(e){d.directionalLightNumber=c.getUniformLocation(d,"directionalLightNumber");d.directionalLightColor=c.getUniformLocation(d,"directionalLightColor");d.directionalLightDirection=c.getUniformLocation(d,"directionalLightDirection")}if(g){d.pointLightNumber= -c.getUniformLocation(d,"pointLightNumber");d.pointLightColor=c.getUniformLocation(d,"pointLightColor");d.pointLightPosition=c.getUniformLocation(d,"pointLightPosition")}d.material=c.getUniformLocation(d,"material");d.mColor=c.getUniformLocation(d,"mColor");d.mOpacity=c.getUniformLocation(d,"mOpacity");d.mAmbient=c.getUniformLocation(d,"mAmbient");d.mSpecular=c.getUniformLocation(d,"mSpecular");d.mShininess=c.getUniformLocation(d,"mShininess");d.enableMap=c.getUniformLocation(d,"enableMap");c.uniform1i(d.enableMap, -0);d.tMap=c.getUniformLocation(d,"tMap");c.uniform1i(d.tMap,0);d.m2Near=c.getUniformLocation(d,"m2Near");d.mFarPlusNear=c.getUniformLocation(d,"mFarPlusNear");d.mFarMinusNear=c.getUniformLocation(d,"mFarMinusNear");d.position=c.getAttribLocation(d,"position");c.enableVertexAttribArray(d.position);d.normal=c.getAttribLocation(d,"normal");c.enableVertexAttribArray(d.normal);d.uv=c.getAttribLocation(d,"uv");c.enableVertexAttribArray(d.uv);d.viewMatrixArray=new Float32Array(16);d.modelViewMatrixArray= -new Float32Array(16);d.projectionMatrixArray=new Float32Array(16)})(a.directional,a.point);this.setSize=function(e,g){f.width=e;f.height=g;c.viewport(0,0,f.width,f.height)};this.clear=function(){c.clear(c.COLOR_BUFFER_BIT|c.DEPTH_BUFFER_BIT)};this.setupLights=function(e){var g,l,h,m,r=[],n=[],p=[];m=[];var w=[];c.uniform1i(d.enableLighting,e.lights.length);g=0;for(l=e.lights.length;g>16&255)/255;this.g=(this.hex>>8&255)/255;this.b=(this.hex&255)/255},updateStyleString:function(){this.__styleString="rgb("+~~(this.r*255)+ -","+~~(this.g*255)+","+~~(this.b*255)+")"},toString:function(){return"THREE.Color ( r: "+this.r+", g: "+this.g+", b: "+this.b+", hex: "+this.hex+" )"}};THREE.Vector2=function(a,b){this.x=a||0;this.y=b||0}; -THREE.Vector2.prototype={set:function(a,b){this.x=a;this.y=b;return this},copy:function(a){this.x=a.x;this.y=a.y;return this},addSelf:function(a){this.x+=a.x;this.y+=a.y;return this},add:function(a,b){this.x=a.x+b.x;this.y=a.y+b.y;return this},subSelf:function(a){this.x-=a.x;this.y-=a.y;return this},sub:function(a,b){this.x=a.x-b.x;this.y=a.y-b.y;return this},multiplyScalar:function(a){this.x*=a;this.y*=a;return this},unit:function(){this.multiplyScalar(1/this.length());return this},length:function(){return Math.sqrt(this.x* -this.x+this.y*this.y)},lengthSq:function(){return this.x*this.x+this.y*this.y},negate:function(){this.x=-this.x;this.y=-this.y;return this},clone:function(){return new THREE.Vector2(this.x,this.y)},toString:function(){return"THREE.Vector2 ("+this.x+", "+this.y+")"}};THREE.Vector3=function(a,b,f){this.x=a||0;this.y=b||0;this.z=f||0}; -THREE.Vector3.prototype={set:function(a,b,f){this.x=a;this.y=b;this.z=f;return this},copy:function(a){this.x=a.x;this.y=a.y;this.z=a.z;return this},add:function(a,b){this.x=a.x+b.x;this.y=a.y+b.y;this.z=a.z+b.z;return this},addSelf:function(a){this.x+=a.x;this.y+=a.y;this.z+=a.z;return this},addScalar:function(a){this.x+=a;this.y+=a;this.z+=a;return this},sub:function(a,b){this.x=a.x-b.x;this.y=a.y-b.y;this.z=a.z-b.z;return this},subSelf:function(a){this.x-=a.x;this.y-=a.y;this.z-=a.z;return this}, -cross:function(a,b){this.x=a.y*b.z-a.z*b.y;this.y=a.z*b.x-a.x*b.z;this.z=a.x*b.y-a.y*b.x;return this},crossSelf:function(a){var b=this.x,f=this.y,c=this.z;this.x=f*a.z-c*a.y;this.y=c*a.x-b*a.z;this.z=b*a.y-f*a.x;return this},multiplySelf:function(a){this.x*=a.x;this.y*=a.y;this.z*=a.z;return this},multiplyScalar:function(a){this.x*=a;this.y*=a;this.z*=a;return this},divideScalar:function(a){this.x/=a;this.y/=a;this.z/=a;return this},dot:function(a){return this.x*a.x+this.y*a.y+this.z*a.z},distanceTo:function(a){return Math.sqrt(this.distanceToSquared(a))}, -distanceToSquared:function(a){var b=this.x-a.x,f=this.y-a.y;a=this.z-a.z;return b*b+f*f+a*a},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z},negate:function(){this.x=-this.x;this.y=-this.y;this.z=-this.z;return this},normalize:function(){this.length()>0?this.multiplyScalar(1/this.length()):this.multiplyScalar(0);return this},setLength:function(a){return this.normalize().multiplyScalar(a)},isZero:function(){return Math.abs(this.x)< -1.0E-4&&Math.abs(this.y)<1.0E-4&&Math.abs(this.z)<1.0E-4},clone:function(){return new THREE.Vector3(this.x,this.y,this.z)},toString:function(){return"THREE.Vector3 ( "+this.x+", "+this.y+", "+this.z+" )"}};THREE.Vector4=function(a,b,f,c){this.x=a||0;this.y=b||0;this.z=f||0;this.w=c||1}; -THREE.Vector4.prototype={set:function(a,b,f,c){this.x=a;this.y=b;this.z=f;this.w=c;return this},copy:function(a){this.x=a.x;this.y=a.y;this.z=a.z;this.w=a.w||1;return this},add:function(a,b){this.x=a.x+b.x;this.y=a.y+b.y;this.z=a.z+b.z;this.w=a.w+b.w;return this},addSelf:function(a){this.x+=a.x;this.y+=a.y;this.z+=a.z;this.w+=a.w;return this},sub:function(a,b){this.x=a.x-b.x;this.y=a.y-b.y;this.z=a.z-b.z;this.w=a.w-b.w;return this},subSelf:function(a){this.x-=a.x;this.y-=a.y;this.z-=a.z;this.w-=a.w; -return this},multiplyScalar:function(a){this.x*=a;this.y*=a;this.z*=a;this.w*=a;return this},divideScalar:function(a){this.x/=a;this.y/=a;this.z/=a;this.w/=a;return this},lerpSelf:function(a,b){this.x+=(a.x-this.x)*b;this.y+=(a.y-this.y)*b;this.z+=(a.z-this.z)*b;this.w+=(a.w-this.w)*b},clone:function(){return new THREE.Vector4(this.x,this.y,this.z,this.w)},toString:function(){return"THREE.Vector4 ("+this.x+", "+this.y+", "+this.z+", "+this.w+")"}}; -THREE.Ray=function(a,b){this.origin=a||new THREE.Vector3;this.direction=b||new THREE.Vector3}; -THREE.Ray.prototype={intersectScene:function(a){var b,f,c=a.objects,d=[];a=0;for(b=c.length;a0&&x>0&&u+x<1}var f,c,d,j,o,t,e,g,l,i, -m,r=a.geometry,n=r.vertices,p=[];f=0;for(c=r.faces.length;f= -0&&Math.min(d,e.getBottom())-Math.max(f,e.getTop())>=0};this.empty=function(){t=true;d=c=f=b=0;a()};this.isEmpty=function(){return t};this.toString=function(){return"THREE.Rectangle ( left: "+b+", right: "+c+", top: "+f+", bottom: "+d+", width: "+j+", height: "+o+" )"}};THREE.Matrix3=function(){this.m=[]};THREE.Matrix3.prototype={transpose:function(){var a;a=this.m[1];this.m[1]=this.m[3];this.m[3]=a;a=this.m[2];this.m[2]=this.m[6];this.m[6]=a;a=this.m[5];this.m[5]=this.m[7];this.m[7]=a;return this}}; +THREE.Color.prototype={setRGB:function(a,c,f){this.r=a;this.g=c;this.b=f;if(this.autoUpdate){this.updateHex();this.updateStyleString()}},setHex:function(a){this.hex=~~a&16777215;if(this.autoUpdate){this.updateRGBA();this.updateStyleString()}},updateHex:function(){this.hex=~~(this.r*255)<<16^~~(this.g*255)<<8^~~(this.b*255)},updateRGBA:function(){this.r=(this.hex>>16&255)/255;this.g=(this.hex>>8&255)/255;this.b=(this.hex&255)/255},updateStyleString:function(){this.__styleString="rgb("+~~(this.r*255)+ +","+~~(this.g*255)+","+~~(this.b*255)+")"},toString:function(){return"THREE.Color ( r: "+this.r+", g: "+this.g+", b: "+this.b+", hex: "+this.hex+" )"}};THREE.Vector2=function(a,c){this.x=a||0;this.y=c||0}; +THREE.Vector2.prototype={set:function(a,c){this.x=a;this.y=c;return this},copy:function(a){this.x=a.x;this.y=a.y;return this},addSelf:function(a){this.x+=a.x;this.y+=a.y;return this},add:function(a,c){this.x=a.x+c.x;this.y=a.y+c.y;return this},subSelf:function(a){this.x-=a.x;this.y-=a.y;return this},sub:function(a,c){this.x=a.x-c.x;this.y=a.y-c.y;return this},multiplyScalar:function(a){this.x*=a;this.y*=a;return this},unit:function(){this.multiplyScalar(1/this.length());return this},length:function(){return Math.sqrt(this.x* +this.x+this.y*this.y)},lengthSq:function(){return this.x*this.x+this.y*this.y},negate:function(){this.x=-this.x;this.y=-this.y;return this},clone:function(){return new THREE.Vector2(this.x,this.y)},toString:function(){return"THREE.Vector2 ("+this.x+", "+this.y+")"}};THREE.Vector3=function(a,c,f){this.x=a||0;this.y=c||0;this.z=f||0}; +THREE.Vector3.prototype={set:function(a,c,f){this.x=a;this.y=c;this.z=f;return this},copy:function(a){this.x=a.x;this.y=a.y;this.z=a.z;return this},add:function(a,c){this.x=a.x+c.x;this.y=a.y+c.y;this.z=a.z+c.z;return this},addSelf:function(a){this.x+=a.x;this.y+=a.y;this.z+=a.z;return this},addScalar:function(a){this.x+=a;this.y+=a;this.z+=a;return this},sub:function(a,c){this.x=a.x-c.x;this.y=a.y-c.y;this.z=a.z-c.z;return this},subSelf:function(a){this.x-=a.x;this.y-=a.y;this.z-=a.z;return this}, +cross:function(a,c){this.x=a.y*c.z-a.z*c.y;this.y=a.z*c.x-a.x*c.z;this.z=a.x*c.y-a.y*c.x;return this},crossSelf:function(a){var c=this.x,f=this.y,b=this.z;this.x=f*a.z-b*a.y;this.y=b*a.x-c*a.z;this.z=c*a.y-f*a.x;return this},multiplySelf:function(a){this.x*=a.x;this.y*=a.y;this.z*=a.z;return this},multiplyScalar:function(a){this.x*=a;this.y*=a;this.z*=a;return this},divideScalar:function(a){this.x/=a;this.y/=a;this.z/=a;return this},dot:function(a){return this.x*a.x+this.y*a.y+this.z*a.z},distanceTo:function(a){return Math.sqrt(this.distanceToSquared(a))}, +distanceToSquared:function(a){var c=this.x-a.x,f=this.y-a.y;a=this.z-a.z;return c*c+f*f+a*a},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z},negate:function(){this.x=-this.x;this.y=-this.y;this.z=-this.z;return this},normalize:function(){this.length()>0?this.multiplyScalar(1/this.length()):this.multiplyScalar(0);return this},setLength:function(a){return this.normalize().multiplyScalar(a)},isZero:function(){return Math.abs(this.x)< +1.0E-4&&Math.abs(this.y)<1.0E-4&&Math.abs(this.z)<1.0E-4},clone:function(){return new THREE.Vector3(this.x,this.y,this.z)},toString:function(){return"THREE.Vector3 ( "+this.x+", "+this.y+", "+this.z+" )"}};THREE.Vector4=function(a,c,f,b){this.x=a||0;this.y=c||0;this.z=f||0;this.w=b||1}; +THREE.Vector4.prototype={set:function(a,c,f,b){this.x=a;this.y=c;this.z=f;this.w=b;return this},copy:function(a){this.x=a.x;this.y=a.y;this.z=a.z;this.w=a.w||1;return this},add:function(a,c){this.x=a.x+c.x;this.y=a.y+c.y;this.z=a.z+c.z;this.w=a.w+c.w;return this},addSelf:function(a){this.x+=a.x;this.y+=a.y;this.z+=a.z;this.w+=a.w;return this},sub:function(a,c){this.x=a.x-c.x;this.y=a.y-c.y;this.z=a.z-c.z;this.w=a.w-c.w;return this},subSelf:function(a){this.x-=a.x;this.y-=a.y;this.z-=a.z;this.w-=a.w; +return this},multiplyScalar:function(a){this.x*=a;this.y*=a;this.z*=a;this.w*=a;return this},divideScalar:function(a){this.x/=a;this.y/=a;this.z/=a;this.w/=a;return this},lerpSelf:function(a,c){this.x+=(a.x-this.x)*c;this.y+=(a.y-this.y)*c;this.z+=(a.z-this.z)*c;this.w+=(a.w-this.w)*c},clone:function(){return new THREE.Vector4(this.x,this.y,this.z,this.w)},toString:function(){return"THREE.Vector4 ("+this.x+", "+this.y+", "+this.z+", "+this.w+")"}}; +THREE.Ray=function(a,c){this.origin=a||new THREE.Vector3;this.direction=c||new THREE.Vector3}; +THREE.Ray.prototype={intersectScene:function(a){var c,f,b=a.objects,d=[];a=0;for(c=b.length;a0&&x>0&&u+x<1}var f,b,d,j,n,t,e,g,m,i, +l,r=a.geometry,o=r.vertices,p=[];f=0;for(b=r.faces.length;f= +0&&Math.min(d,e.getBottom())-Math.max(f,e.getTop())>=0};this.empty=function(){t=true;d=b=f=c=0;a()};this.isEmpty=function(){return t};this.toString=function(){return"THREE.Rectangle ( left: "+c+", right: "+b+", top: "+f+", bottom: "+d+", width: "+j+", height: "+n+" )"}};THREE.Matrix3=function(){this.m=[]};THREE.Matrix3.prototype={transpose:function(){var a;a=this.m[1];this.m[1]=this.m[3];this.m[3]=a;a=this.m[2];this.m[2]=this.m[6];this.m[6]=a;a=this.m[5];this.m[5]=this.m[7];this.m[7]=a;return this}}; THREE.Matrix4=function(){this._x=new THREE.Vector3;this._y=new THREE.Vector3;this._z=new THREE.Vector3}; THREE.Matrix4.prototype={n11:1,n12:0,n13:0,n14:0,n21:0,n22:1,n23:0,n24:0,n31:0,n32:0,n33:1,n34:0,n41:0,n42:0,n43:0,n44:1,identity:function(){this.n11=1;this.n21=this.n14=this.n13=this.n12=0;this.n22=1;this.n32=this.n31=this.n24=this.n23=0;this.n33=1;this.n43=this.n42=this.n41=this.n34=0;this.n44=1},copy:function(a){this.n11=a.n11;this.n12=a.n12;this.n13=a.n13;this.n14=a.n14;this.n21=a.n21;this.n22=a.n22;this.n23=a.n23;this.n24=a.n24;this.n31=a.n31;this.n32=a.n32;this.n33=a.n33;this.n34=a.n34;this.n41= -a.n41;this.n42=a.n42;this.n43=a.n43;this.n44=a.n44},lookAt:function(a,b,f){var c=this._x,d=this._y,j=this._z;j.sub(a,b);j.normalize();c.cross(f,j);c.normalize();d.cross(j,c);d.normalize();this.n11=c.x;this.n12=c.y;this.n13=c.z;this.n14=-c.dot(a);this.n21=d.x;this.n22=d.y;this.n23=d.z;this.n24=-d.dot(a);this.n31=j.x;this.n32=j.y;this.n33=j.z;this.n34=-j.dot(a);this.n43=this.n42=this.n41=0;this.n44=1},transform:function(a){var b=a.x,f=a.y,c=a.z,d=a.w?a.w:1;a.x=this.n11*b+this.n12*f+this.n13*c+this.n14* -d;a.y=this.n21*b+this.n22*f+this.n23*c+this.n24*d;a.z=this.n31*b+this.n32*f+this.n33*c+this.n34*d;d=this.n41*b+this.n42*f+this.n43*c+this.n44*d;if(a.w)a.w=d;else{a.x/=d;a.y/=d;a.z/=d}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){this.n11=a.n11*b.n11+a.n12*b.n21+a.n13*b.n31+a.n14*b.n41;this.n12=a.n11*b.n12+a.n12*b.n22+a.n13*b.n32+a.n14*b.n42;this.n13=a.n11*b.n13+a.n12*b.n23+a.n13*b.n33+a.n14*b.n43;this.n14=a.n11*b.n14+a.n12*b.n24+a.n13*b.n34+a.n14*b.n44;this.n21=a.n21*b.n11+a.n22*b.n21+a.n23*b.n31+a.n24*b.n41;this.n22=a.n21*b.n12+a.n22*b.n22+a.n23*b.n32+a.n24*b.n42;this.n23=a.n21*b.n13+a.n22*b.n23+a.n23*b.n33+a.n24*b.n43;this.n24=a.n21*b.n14+a.n22*b.n24+a.n23*b.n34+a.n24*b.n44;this.n31=a.n31*b.n11+a.n32*b.n21+a.n33*b.n31+ -a.n34*b.n41;this.n32=a.n31*b.n12+a.n32*b.n22+a.n33*b.n32+a.n34*b.n42;this.n33=a.n31*b.n13+a.n32*b.n23+a.n33*b.n33+a.n34*b.n43;this.n34=a.n31*b.n14+a.n32*b.n24+a.n33*b.n34+a.n34*b.n44;this.n41=a.n41*b.n11+a.n42*b.n21+a.n43*b.n31+a.n44*b.n41;this.n42=a.n41*b.n12+a.n42*b.n22+a.n43*b.n32+a.n44*b.n42;this.n43=a.n41*b.n13+a.n42*b.n23+a.n43*b.n33+a.n44*b.n43;this.n44=a.n41*b.n14+a.n42*b.n24+a.n43*b.n34+a.n44*b.n44},multiplySelf:function(a){var b=this.n11,f=this.n12,c=this.n13,d=this.n14,j=this.n21,o=this.n22, -t=this.n23,e=this.n24,g=this.n31,l=this.n32,i=this.n33,m=this.n34,r=this.n41,n=this.n42,p=this.n43,x=this.n44;this.n11=b*a.n11+f*a.n21+c*a.n31+d*a.n41;this.n12=b*a.n12+f*a.n22+c*a.n32+d*a.n42;this.n13=b*a.n13+f*a.n23+c*a.n33+d*a.n43;this.n14=b*a.n14+f*a.n24+c*a.n34+d*a.n44;this.n21=j*a.n11+o*a.n21+t*a.n31+e*a.n41;this.n22=j*a.n12+o*a.n22+t*a.n32+e*a.n42;this.n23=j*a.n13+o*a.n23+t*a.n33+e*a.n43;this.n24=j*a.n14+o*a.n24+t*a.n34+e*a.n44;this.n31=g*a.n11+l*a.n21+i*a.n31+m*a.n41;this.n32=g*a.n12+l*a.n22+ -i*a.n32+m*a.n42;this.n33=g*a.n13+l*a.n23+i*a.n33+m*a.n43;this.n34=g*a.n14+l*a.n24+i*a.n34+m*a.n44;this.n41=r*a.n11+n*a.n21+p*a.n31+x*a.n41;this.n42=r*a.n12+n*a.n22+p*a.n32+x*a.n42;this.n43=r*a.n13+n*a.n23+p*a.n33+x*a.n43;this.n44=r*a.n14+n*a.n24+p*a.n34+x*a.n44},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},determinant:function(){return this.n14* +a.n41;this.n42=a.n42;this.n43=a.n43;this.n44=a.n44},lookAt:function(a,c,f){var b=this._x,d=this._y,j=this._z;j.sub(a,c);j.normalize();b.cross(f,j);b.normalize();d.cross(j,b);d.normalize();this.n11=b.x;this.n12=b.y;this.n13=b.z;this.n14=-b.dot(a);this.n21=d.x;this.n22=d.y;this.n23=d.z;this.n24=-d.dot(a);this.n31=j.x;this.n32=j.y;this.n33=j.z;this.n34=-j.dot(a);this.n43=this.n42=this.n41=0;this.n44=1},transform:function(a){var c=a.x,f=a.y,b=a.z,d=a.w?a.w:1;a.x=this.n11*c+this.n12*f+this.n13*b+this.n14* +d;a.y=this.n21*c+this.n22*f+this.n23*b+this.n24*d;a.z=this.n31*c+this.n32*f+this.n33*b+this.n34*d;d=this.n41*c+this.n42*f+this.n43*b+this.n44*d;if(a.w)a.w=d;else{a.x/=d;a.y/=d;a.z/=d}return a},crossVector:function(a){var c=new THREE.Vector4;c.x=this.n11*a.x+this.n12*a.y+this.n13*a.z+this.n14*a.w;c.y=this.n21*a.x+this.n22*a.y+this.n23*a.z+this.n24*a.w;c.z=this.n31*a.x+this.n32*a.y+this.n33*a.z+this.n34*a.w;c.w=a.w?this.n41*a.x+this.n42*a.y+this.n43*a.z+this.n44*a.w:1;return c},multiply:function(a, +c){this.n11=a.n11*c.n11+a.n12*c.n21+a.n13*c.n31+a.n14*c.n41;this.n12=a.n11*c.n12+a.n12*c.n22+a.n13*c.n32+a.n14*c.n42;this.n13=a.n11*c.n13+a.n12*c.n23+a.n13*c.n33+a.n14*c.n43;this.n14=a.n11*c.n14+a.n12*c.n24+a.n13*c.n34+a.n14*c.n44;this.n21=a.n21*c.n11+a.n22*c.n21+a.n23*c.n31+a.n24*c.n41;this.n22=a.n21*c.n12+a.n22*c.n22+a.n23*c.n32+a.n24*c.n42;this.n23=a.n21*c.n13+a.n22*c.n23+a.n23*c.n33+a.n24*c.n43;this.n24=a.n21*c.n14+a.n22*c.n24+a.n23*c.n34+a.n24*c.n44;this.n31=a.n31*c.n11+a.n32*c.n21+a.n33*c.n31+ +a.n34*c.n41;this.n32=a.n31*c.n12+a.n32*c.n22+a.n33*c.n32+a.n34*c.n42;this.n33=a.n31*c.n13+a.n32*c.n23+a.n33*c.n33+a.n34*c.n43;this.n34=a.n31*c.n14+a.n32*c.n24+a.n33*c.n34+a.n34*c.n44;this.n41=a.n41*c.n11+a.n42*c.n21+a.n43*c.n31+a.n44*c.n41;this.n42=a.n41*c.n12+a.n42*c.n22+a.n43*c.n32+a.n44*c.n42;this.n43=a.n41*c.n13+a.n42*c.n23+a.n43*c.n33+a.n44*c.n43;this.n44=a.n41*c.n14+a.n42*c.n24+a.n43*c.n34+a.n44*c.n44},multiplySelf:function(a){var c=this.n11,f=this.n12,b=this.n13,d=this.n14,j=this.n21,n=this.n22, +t=this.n23,e=this.n24,g=this.n31,m=this.n32,i=this.n33,l=this.n34,r=this.n41,o=this.n42,p=this.n43,x=this.n44;this.n11=c*a.n11+f*a.n21+b*a.n31+d*a.n41;this.n12=c*a.n12+f*a.n22+b*a.n32+d*a.n42;this.n13=c*a.n13+f*a.n23+b*a.n33+d*a.n43;this.n14=c*a.n14+f*a.n24+b*a.n34+d*a.n44;this.n21=j*a.n11+n*a.n21+t*a.n31+e*a.n41;this.n22=j*a.n12+n*a.n22+t*a.n32+e*a.n42;this.n23=j*a.n13+n*a.n23+t*a.n33+e*a.n43;this.n24=j*a.n14+n*a.n24+t*a.n34+e*a.n44;this.n31=g*a.n11+m*a.n21+i*a.n31+l*a.n41;this.n32=g*a.n12+m*a.n22+ +i*a.n32+l*a.n42;this.n33=g*a.n13+m*a.n23+i*a.n33+l*a.n43;this.n34=g*a.n14+m*a.n24+i*a.n34+l*a.n44;this.n41=r*a.n11+o*a.n21+p*a.n31+x*a.n41;this.n42=r*a.n12+o*a.n22+p*a.n32+x*a.n42;this.n43=r*a.n13+o*a.n23+p*a.n33+x*a.n43;this.n44=r*a.n14+o*a.n24+p*a.n34+x*a.n44},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},determinant:function(){return this.n14* this.n23*this.n32*this.n41-this.n13*this.n24*this.n32*this.n41-this.n14*this.n22*this.n33*this.n41+this.n12*this.n24*this.n33*this.n41+this.n13*this.n22*this.n34*this.n41-this.n12*this.n23*this.n34*this.n41-this.n14*this.n23*this.n31*this.n42+this.n13*this.n24*this.n31*this.n42+this.n14*this.n21*this.n33*this.n42-this.n11*this.n24*this.n33*this.n42-this.n13*this.n21*this.n34*this.n42+this.n11*this.n23*this.n34*this.n42+this.n14*this.n22*this.n31*this.n43-this.n12*this.n24*this.n31*this.n43-this.n14* -this.n21*this.n32*this.n43+this.n11*this.n24*this.n32*this.n43+this.n12*this.n21*this.n34*this.n43-this.n11*this.n22*this.n34*this.n43-this.n13*this.n22*this.n31*this.n44+this.n12*this.n23*this.n31*this.n44+this.n13*this.n21*this.n32*this.n44-this.n11*this.n23*this.n32*this.n44-this.n12*this.n21*this.n33*this.n44+this.n11*this.n22*this.n33*this.n44},transpose:function(){function a(b,f,c){var d=b[f];b[f]=b[c];b[c]=d}a(this,"n21","n12");a(this,"n31","n13");a(this,"n32","n23");a(this,"n41","n14");a(this, +this.n21*this.n32*this.n43+this.n11*this.n24*this.n32*this.n43+this.n12*this.n21*this.n34*this.n43-this.n11*this.n22*this.n34*this.n43-this.n13*this.n22*this.n31*this.n44+this.n12*this.n23*this.n31*this.n44+this.n13*this.n21*this.n32*this.n44-this.n11*this.n23*this.n32*this.n44-this.n12*this.n21*this.n33*this.n44+this.n11*this.n22*this.n33*this.n44},transpose:function(){function a(c,f,b){var d=c[f];c[f]=c[b];c[b]=d}a(this,"n21","n12");a(this,"n31","n13");a(this,"n32","n23");a(this,"n41","n14");a(this, "n42","n24");a(this,"n43","n34");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(){return[this.n11,this.n21,this.n31,this.n41,this.n12,this.n22,this.n32,this.n42,this.n13,this.n23,this.n33,this.n43,this.n14,this.n24,this.n34,this.n44]}, -toString:function(){return"| "+this.n11+" "+this.n12+" "+this.n13+" "+this.n14+" |\n| "+this.n21+" "+this.n22+" "+this.n23+" "+this.n24+" |\n| "+this.n31+" "+this.n32+" "+this.n33+" "+this.n34+" |\n| "+this.n41+" "+this.n42+" "+this.n43+" "+this.n44+" |"}};THREE.Matrix4.translationMatrix=function(a,b,f){var c=new THREE.Matrix4;c.n14=a;c.n24=b;c.n34=f;return c};THREE.Matrix4.scaleMatrix=function(a,b,f){var c=new THREE.Matrix4;c.n11=a;c.n22=b;c.n33=f;return c}; -THREE.Matrix4.rotationXMatrix=function(a){var b=new THREE.Matrix4;b.n22=b.n33=Math.cos(a);b.n32=Math.sin(a);b.n23=-b.n32;return b};THREE.Matrix4.rotationYMatrix=function(a){var b=new THREE.Matrix4;b.n11=b.n33=Math.cos(a);b.n13=Math.sin(a);b.n31=-b.n13;return b};THREE.Matrix4.rotationZMatrix=function(a){var b=new THREE.Matrix4;b.n11=b.n22=Math.cos(a);b.n21=Math.sin(a);b.n12=-b.n21;return b}; -THREE.Matrix4.rotationAxisAngleMatrix=function(a,b){var f=new THREE.Matrix4,c=Math.cos(b),d=Math.sin(b),j=1-c,o=a.x,t=a.y,e=a.z;f.n11=j*o*o+c;f.n12=j*o*t-d*e;f.n13=j*o*e+d*t;f.n21=j*o*t+d*e;f.n22=j*t*t+c;f.n23=j*t*e-d*o;f.n31=j*o*e-d*t;f.n32=j*t*e+d*o;f.n33=j*e*e+c;return f}; -THREE.Matrix4.makeInvert=function(a){var b=new THREE.Matrix4;b.n11=a.n23*a.n34*a.n42-a.n24*a.n33*a.n42+a.n24*a.n32*a.n43-a.n22*a.n34*a.n43-a.n23*a.n32*a.n44+a.n22*a.n33*a.n44;b.n12=a.n14*a.n33*a.n42-a.n13*a.n34*a.n42-a.n14*a.n32*a.n43+a.n12*a.n34*a.n43+a.n13*a.n32*a.n44-a.n12*a.n33*a.n44;b.n13=a.n13*a.n24*a.n42-a.n14*a.n23*a.n42+a.n14*a.n22*a.n43-a.n12*a.n24*a.n43-a.n13*a.n22*a.n44+a.n12*a.n23*a.n44;b.n14=a.n14*a.n23*a.n32-a.n13*a.n24*a.n32-a.n14*a.n22*a.n33+a.n12*a.n24*a.n33+a.n13*a.n22*a.n34-a.n12* -a.n23*a.n34;b.n21=a.n24*a.n33*a.n41-a.n23*a.n34*a.n41-a.n24*a.n31*a.n43+a.n21*a.n34*a.n43+a.n23*a.n31*a.n44-a.n21*a.n33*a.n44;b.n22=a.n13*a.n34*a.n41-a.n14*a.n33*a.n41+a.n14*a.n31*a.n43-a.n11*a.n34*a.n43-a.n13*a.n31*a.n44+a.n11*a.n33*a.n44;b.n23=a.n14*a.n23*a.n41-a.n13*a.n24*a.n41-a.n14*a.n21*a.n43+a.n11*a.n24*a.n43+a.n13*a.n21*a.n44-a.n11*a.n23*a.n44;b.n24=a.n13*a.n24*a.n31-a.n14*a.n23*a.n31+a.n14*a.n21*a.n33-a.n11*a.n24*a.n33-a.n13*a.n21*a.n34+a.n11*a.n23*a.n34;b.n31=a.n22*a.n34*a.n41-a.n24*a.n32* -a.n41+a.n24*a.n31*a.n42-a.n21*a.n34*a.n42-a.n22*a.n31*a.n44+a.n21*a.n32*a.n44;b.n32=a.n14*a.n32*a.n41-a.n12*a.n34*a.n41-a.n14*a.n31*a.n42+a.n11*a.n34*a.n42+a.n12*a.n31*a.n44-a.n11*a.n32*a.n44;b.n33=a.n13*a.n24*a.n41-a.n14*a.n22*a.n41+a.n14*a.n21*a.n42-a.n11*a.n24*a.n42-a.n12*a.n21*a.n44+a.n11*a.n22*a.n44;b.n34=a.n14*a.n22*a.n31-a.n12*a.n24*a.n31-a.n14*a.n21*a.n32+a.n11*a.n24*a.n32+a.n12*a.n21*a.n34-a.n11*a.n22*a.n34;b.n41=a.n23*a.n32*a.n41-a.n22*a.n33*a.n41-a.n23*a.n31*a.n42+a.n21*a.n33*a.n42+a.n22* -a.n31*a.n43-a.n21*a.n32*a.n43;b.n42=a.n12*a.n33*a.n41-a.n13*a.n32*a.n41+a.n13*a.n31*a.n42-a.n11*a.n33*a.n42-a.n12*a.n31*a.n43+a.n11*a.n32*a.n43;b.n43=a.n13*a.n22*a.n41-a.n12*a.n23*a.n41-a.n13*a.n21*a.n42+a.n11*a.n23*a.n42+a.n12*a.n21*a.n43-a.n11*a.n22*a.n43;b.n44=a.n12*a.n23*a.n31-a.n13*a.n22*a.n31+a.n13*a.n21*a.n32-a.n11*a.n23*a.n32-a.n12*a.n21*a.n33+a.n11*a.n22*a.n33;b.multiplyScalar(1/a.determinant());return b}; -THREE.Matrix4.makeInvert3x3=function(a){var b=a.flatten();a=new THREE.Matrix3;var f=b[10]*b[5]-b[6]*b[9],c=-b[10]*b[1]+b[2]*b[9],d=b[6]*b[1]-b[2]*b[5],j=-b[10]*b[4]+b[6]*b[8],o=b[10]*b[0]-b[2]*b[8],t=-b[6]*b[0]+b[2]*b[4],e=b[9]*b[4]-b[5]*b[8],g=-b[9]*b[0]+b[1]*b[8],l=b[5]*b[0]-b[1]*b[4];b=b[0]*f+b[1]*j+b[2]*e;if(b==0)throw"matrix not invertible";b=1/b;a.m[0]=b*f;a.m[1]=b*c;a.m[2]=b*d;a.m[3]=b*j;a.m[4]=b*o;a.m[5]=b*t;a.m[6]=b*e;a.m[7]=b*g;a.m[8]=b*l;return a}; -THREE.Matrix4.makeFrustum=function(a,b,f,c,d,j){var o,t,e;o=new THREE.Matrix4;t=2*d/(b-a);e=2*d/(c-f);a=(b+a)/(b-a);f=(c+f)/(c-f);c=-(j+d)/(j-d);d=-2*j*d/(j-d);o.n11=t;o.n12=0;o.n13=a;o.n14=0;o.n21=0;o.n22=e;o.n23=f;o.n24=0;o.n31=0;o.n32=0;o.n33=c;o.n34=d;o.n41=0;o.n42=0;o.n43=-1;o.n44=0;return o};THREE.Matrix4.makePerspective=function(a,b,f,c){var d;a=f*Math.tan(a*Math.PI/360);d=-a;return THREE.Matrix4.makeFrustum(d*b,a*b,d,a,f,c)}; -THREE.Matrix4.makeOrtho=function(a,b,f,c,d,j){var o,t,e,g;o=new THREE.Matrix4;t=b-a;e=f-c;g=j-d;a=(b+a)/t;f=(f+c)/e;d=(j+d)/g;o.n11=2/t;o.n12=0;o.n13=0;o.n14=-a;o.n21=0;o.n22=2/e;o.n23=0;o.n24=-f;o.n31=0;o.n32=0;o.n33=-2/g;o.n34=-d;o.n41=0;o.n42=0;o.n43=0;o.n44=1;return o}; -THREE.Vertex=function(a,b){this.position=a||new THREE.Vector3;this.positionWorld=new THREE.Vector3;this.positionScreen=new THREE.Vector4;this.normal=b||new THREE.Vector3;this.normalWorld=new THREE.Vector3;this.normalScreen=new THREE.Vector3;this.__visible=true};THREE.Vertex.prototype={toString:function(){return"THREE.Vertex ( position: "+this.position+", normal: "+this.normal+" )"}}; -THREE.Face3=function(a,b,f,c,d){this.a=a;this.b=b;this.c=f;this.centroid=new THREE.Vector3;this.normal=c instanceof THREE.Vector3?c:new THREE.Vector3;this.vertexNormals=c instanceof Array?c:[];this.material=d instanceof Array?d:[d]};THREE.Face3.prototype={toString:function(){return"THREE.Face3 ( "+this.a+", "+this.b+", "+this.c+" )"}}; -THREE.Face4=function(a,b,f,c,d,j){this.a=a;this.b=b;this.c=f;this.d=c;this.centroid=new THREE.Vector3;this.normal=d instanceof THREE.Vector3?d:new THREE.Vector3;this.vertexNormals=d instanceof Array?d:[];this.material=j instanceof Array?j:[j]};THREE.Face4.prototype={toString:function(){return"THREE.Face4 ( "+this.a+", "+this.b+", "+this.c+" "+this.d+" )"}};THREE.UV=function(a,b){this.u=a||0;this.v=b||0}; +toString:function(){return"| "+this.n11+" "+this.n12+" "+this.n13+" "+this.n14+" |\n| "+this.n21+" "+this.n22+" "+this.n23+" "+this.n24+" |\n| "+this.n31+" "+this.n32+" "+this.n33+" "+this.n34+" |\n| "+this.n41+" "+this.n42+" "+this.n43+" "+this.n44+" |"}};THREE.Matrix4.translationMatrix=function(a,c,f){var b=new THREE.Matrix4;b.n14=a;b.n24=c;b.n34=f;return b};THREE.Matrix4.scaleMatrix=function(a,c,f){var b=new THREE.Matrix4;b.n11=a;b.n22=c;b.n33=f;return b}; +THREE.Matrix4.rotationXMatrix=function(a){var c=new THREE.Matrix4;c.n22=c.n33=Math.cos(a);c.n32=Math.sin(a);c.n23=-c.n32;return c};THREE.Matrix4.rotationYMatrix=function(a){var c=new THREE.Matrix4;c.n11=c.n33=Math.cos(a);c.n13=Math.sin(a);c.n31=-c.n13;return c};THREE.Matrix4.rotationZMatrix=function(a){var c=new THREE.Matrix4;c.n11=c.n22=Math.cos(a);c.n21=Math.sin(a);c.n12=-c.n21;return c}; +THREE.Matrix4.rotationAxisAngleMatrix=function(a,c){var f=new THREE.Matrix4,b=Math.cos(c),d=Math.sin(c),j=1-b,n=a.x,t=a.y,e=a.z;f.n11=j*n*n+b;f.n12=j*n*t-d*e;f.n13=j*n*e+d*t;f.n21=j*n*t+d*e;f.n22=j*t*t+b;f.n23=j*t*e-d*n;f.n31=j*n*e-d*t;f.n32=j*t*e+d*n;f.n33=j*e*e+b;return f}; +THREE.Matrix4.makeInvert=function(a){var c=new THREE.Matrix4;c.n11=a.n23*a.n34*a.n42-a.n24*a.n33*a.n42+a.n24*a.n32*a.n43-a.n22*a.n34*a.n43-a.n23*a.n32*a.n44+a.n22*a.n33*a.n44;c.n12=a.n14*a.n33*a.n42-a.n13*a.n34*a.n42-a.n14*a.n32*a.n43+a.n12*a.n34*a.n43+a.n13*a.n32*a.n44-a.n12*a.n33*a.n44;c.n13=a.n13*a.n24*a.n42-a.n14*a.n23*a.n42+a.n14*a.n22*a.n43-a.n12*a.n24*a.n43-a.n13*a.n22*a.n44+a.n12*a.n23*a.n44;c.n14=a.n14*a.n23*a.n32-a.n13*a.n24*a.n32-a.n14*a.n22*a.n33+a.n12*a.n24*a.n33+a.n13*a.n22*a.n34-a.n12* +a.n23*a.n34;c.n21=a.n24*a.n33*a.n41-a.n23*a.n34*a.n41-a.n24*a.n31*a.n43+a.n21*a.n34*a.n43+a.n23*a.n31*a.n44-a.n21*a.n33*a.n44;c.n22=a.n13*a.n34*a.n41-a.n14*a.n33*a.n41+a.n14*a.n31*a.n43-a.n11*a.n34*a.n43-a.n13*a.n31*a.n44+a.n11*a.n33*a.n44;c.n23=a.n14*a.n23*a.n41-a.n13*a.n24*a.n41-a.n14*a.n21*a.n43+a.n11*a.n24*a.n43+a.n13*a.n21*a.n44-a.n11*a.n23*a.n44;c.n24=a.n13*a.n24*a.n31-a.n14*a.n23*a.n31+a.n14*a.n21*a.n33-a.n11*a.n24*a.n33-a.n13*a.n21*a.n34+a.n11*a.n23*a.n34;c.n31=a.n22*a.n34*a.n41-a.n24*a.n32* +a.n41+a.n24*a.n31*a.n42-a.n21*a.n34*a.n42-a.n22*a.n31*a.n44+a.n21*a.n32*a.n44;c.n32=a.n14*a.n32*a.n41-a.n12*a.n34*a.n41-a.n14*a.n31*a.n42+a.n11*a.n34*a.n42+a.n12*a.n31*a.n44-a.n11*a.n32*a.n44;c.n33=a.n13*a.n24*a.n41-a.n14*a.n22*a.n41+a.n14*a.n21*a.n42-a.n11*a.n24*a.n42-a.n12*a.n21*a.n44+a.n11*a.n22*a.n44;c.n34=a.n14*a.n22*a.n31-a.n12*a.n24*a.n31-a.n14*a.n21*a.n32+a.n11*a.n24*a.n32+a.n12*a.n21*a.n34-a.n11*a.n22*a.n34;c.n41=a.n23*a.n32*a.n41-a.n22*a.n33*a.n41-a.n23*a.n31*a.n42+a.n21*a.n33*a.n42+a.n22* +a.n31*a.n43-a.n21*a.n32*a.n43;c.n42=a.n12*a.n33*a.n41-a.n13*a.n32*a.n41+a.n13*a.n31*a.n42-a.n11*a.n33*a.n42-a.n12*a.n31*a.n43+a.n11*a.n32*a.n43;c.n43=a.n13*a.n22*a.n41-a.n12*a.n23*a.n41-a.n13*a.n21*a.n42+a.n11*a.n23*a.n42+a.n12*a.n21*a.n43-a.n11*a.n22*a.n43;c.n44=a.n12*a.n23*a.n31-a.n13*a.n22*a.n31+a.n13*a.n21*a.n32-a.n11*a.n23*a.n32-a.n12*a.n21*a.n33+a.n11*a.n22*a.n33;c.multiplyScalar(1/a.determinant());return c}; +THREE.Matrix4.makeInvert3x3=function(a){var c=a.flatten();a=new THREE.Matrix3;var f=c[10]*c[5]-c[6]*c[9],b=-c[10]*c[1]+c[2]*c[9],d=c[6]*c[1]-c[2]*c[5],j=-c[10]*c[4]+c[6]*c[8],n=c[10]*c[0]-c[2]*c[8],t=-c[6]*c[0]+c[2]*c[4],e=c[9]*c[4]-c[5]*c[8],g=-c[9]*c[0]+c[1]*c[8],m=c[5]*c[0]-c[1]*c[4];c=c[0]*f+c[1]*j+c[2]*e;if(c==0)throw"matrix not invertible";c=1/c;a.m[0]=c*f;a.m[1]=c*b;a.m[2]=c*d;a.m[3]=c*j;a.m[4]=c*n;a.m[5]=c*t;a.m[6]=c*e;a.m[7]=c*g;a.m[8]=c*m;return a}; +THREE.Matrix4.makeFrustum=function(a,c,f,b,d,j){var n,t,e;n=new THREE.Matrix4;t=2*d/(c-a);e=2*d/(b-f);a=(c+a)/(c-a);f=(b+f)/(b-f);b=-(j+d)/(j-d);d=-2*j*d/(j-d);n.n11=t;n.n12=0;n.n13=a;n.n14=0;n.n21=0;n.n22=e;n.n23=f;n.n24=0;n.n31=0;n.n32=0;n.n33=b;n.n34=d;n.n41=0;n.n42=0;n.n43=-1;n.n44=0;return n};THREE.Matrix4.makePerspective=function(a,c,f,b){var d;a=f*Math.tan(a*Math.PI/360);d=-a;return THREE.Matrix4.makeFrustum(d*c,a*c,d,a,f,b)}; +THREE.Matrix4.makeOrtho=function(a,c,f,b,d,j){var n,t,e,g;n=new THREE.Matrix4;t=c-a;e=f-b;g=j-d;a=(c+a)/t;f=(f+b)/e;d=(j+d)/g;n.n11=2/t;n.n12=0;n.n13=0;n.n14=-a;n.n21=0;n.n22=2/e;n.n23=0;n.n24=-f;n.n31=0;n.n32=0;n.n33=-2/g;n.n34=-d;n.n41=0;n.n42=0;n.n43=0;n.n44=1;return n}; +THREE.Vertex=function(a,c){this.position=a||new THREE.Vector3;this.positionWorld=new THREE.Vector3;this.positionScreen=new THREE.Vector4;this.normal=c||new THREE.Vector3;this.normalWorld=new THREE.Vector3;this.normalScreen=new THREE.Vector3;this.__visible=true};THREE.Vertex.prototype={toString:function(){return"THREE.Vertex ( position: "+this.position+", normal: "+this.normal+" )"}}; +THREE.Face3=function(a,c,f,b,d){this.a=a;this.b=c;this.c=f;this.centroid=new THREE.Vector3;this.normal=b instanceof THREE.Vector3?b:new THREE.Vector3;this.vertexNormals=b instanceof Array?b:[];this.material=d instanceof Array?d:[d]};THREE.Face3.prototype={toString:function(){return"THREE.Face3 ( "+this.a+", "+this.b+", "+this.c+" )"}}; +THREE.Face4=function(a,c,f,b,d,j){this.a=a;this.b=c;this.c=f;this.d=b;this.centroid=new THREE.Vector3;this.normal=d instanceof THREE.Vector3?d:new THREE.Vector3;this.vertexNormals=d instanceof Array?d:[];this.material=j instanceof Array?j:[j]};THREE.Face4.prototype={toString:function(){return"THREE.Face4 ( "+this.a+", "+this.b+", "+this.c+" "+this.d+" )"}};THREE.UV=function(a,c){this.u=a||0;this.v=c||0}; THREE.UV.prototype={copy:function(a){this.u=a.u;this.v=a.v},toString:function(){return"THREE.UV ("+this.u+", "+this.v+")"}};THREE.Geometry=function(){this.vertices=[];this.faces=[];this.uvs=[]}; -THREE.Geometry.prototype={computeCentroids:function(){var a,b,f;a=0;for(b=this.faces.length;a0){this.bbox={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]};for(var a=1,b=this.vertices.length;a +THREE.Geometry.prototype={computeCentroids:function(){var a,c,f;a=0;for(c=this.faces.length;a0){this.bbox={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]};for(var a=1,c=this.vertices.length;a this.bbox.x[1])this.bbox.x[1]=vertex.position.x;if(vertex.position.ythis.bbox.y[1])this.bbox.y[1]=vertex.position.y;if(vertex.position.zthis.bbox.z[1])this.bbox.z[1]=vertex.position.z}}},toString:function(){return"THREE.Geometry ( vertices: "+this.vertices+", faces: "+this.faces+" )"}}; -THREE.Camera=function(a,b,f,c){this.position=new THREE.Vector3(0,0,0);this.target={position:new THREE.Vector3(0,0,0)};this.up=new THREE.Vector3(0,1,0);this.matrix=new THREE.Matrix4;this.projectionMatrix=THREE.Matrix4.makePerspective(a,b,f,c);this.autoUpdateMatrix=true;this.updateMatrix=function(){this.matrix.lookAt(this.position,this.target.position,this.up)};this.toString=function(){return"THREE.Camera ( "+this.position+", "+this.target.position+" )"}}; -THREE.Light=function(a){this.color=new THREE.Color(-16777216|a)};THREE.AmbientLight=function(a){THREE.Light.call(this,a)};THREE.AmbientLight.prototype=new THREE.Light;THREE.AmbientLight.prototype.constructor=THREE.AmbientLight;THREE.DirectionalLight=function(a,b){THREE.Light.call(this,a);this.position=new THREE.Vector3(0,1,0);this.intensity=b||1};THREE.DirectionalLight.prototype=new THREE.Light;THREE.DirectionalLight.prototype.constructor=THREE.DirectionalLight; -THREE.PointLight=function(a,b){THREE.Light.call(this,a);this.position=new THREE.Vector3(0,0,0);this.intensity=b||1};THREE.DirectionalLight.prototype=new THREE.Light;THREE.DirectionalLight.prototype.constructor=THREE.PointLight; +THREE.Camera=function(a,c,f,b){this.position=new THREE.Vector3(0,0,0);this.target={position:new THREE.Vector3(0,0,0)};this.up=new THREE.Vector3(0,1,0);this.matrix=new THREE.Matrix4;this.projectionMatrix=THREE.Matrix4.makePerspective(a,c,f,b);this.autoUpdateMatrix=true;this.updateMatrix=function(){this.matrix.lookAt(this.position,this.target.position,this.up)};this.toString=function(){return"THREE.Camera ( "+this.position+", "+this.target.position+" )"}}; +THREE.Light=function(a){this.color=new THREE.Color(-16777216|a)};THREE.AmbientLight=function(a){THREE.Light.call(this,a)};THREE.AmbientLight.prototype=new THREE.Light;THREE.AmbientLight.prototype.constructor=THREE.AmbientLight;THREE.DirectionalLight=function(a,c){THREE.Light.call(this,a);this.position=new THREE.Vector3(0,1,0);this.intensity=c||1};THREE.DirectionalLight.prototype=new THREE.Light;THREE.DirectionalLight.prototype.constructor=THREE.DirectionalLight; +THREE.PointLight=function(a,c){THREE.Light.call(this,a);this.position=new THREE.Vector3(0,0,0);this.intensity=c||1};THREE.DirectionalLight.prototype=new THREE.Light;THREE.DirectionalLight.prototype.constructor=THREE.PointLight; THREE.Object3D=function(){this.position=new THREE.Vector3;this.rotation=new THREE.Vector3;this.scale=new THREE.Vector3(1,1,1);this.matrix=new THREE.Matrix4;this.matrixTranslation=new THREE.Matrix4;this.matrixRotation=new THREE.Matrix4;this.matrixScale=new THREE.Matrix4;this.screen=new THREE.Vector3;this.autoUpdateMatrix=true;this.updateMatrix=function(){this.matrixPosition=THREE.Matrix4.translationMatrix(this.position.x,this.position.y,this.position.z);this.matrixRotation=THREE.Matrix4.rotationXMatrix(this.rotation.x); this.matrixRotation.multiplySelf(THREE.Matrix4.rotationYMatrix(this.rotation.y));this.matrixRotation.multiplySelf(THREE.Matrix4.rotationZMatrix(this.rotation.z));this.matrixScale=THREE.Matrix4.scaleMatrix(this.scale.x,this.scale.y,this.scale.z);this.matrix.copy(this.matrixPosition);this.matrix.multiplySelf(this.matrixRotation);this.matrix.multiplySelf(this.matrixScale)}};THREE.Particle=function(a){THREE.Object3D.call(this);this.material=a instanceof Array?a:[a];this.autoUpdateMatrix=false}; -THREE.Particle.prototype=new THREE.Object3D;THREE.Particle.prototype.constructor=THREE.Particle;THREE.Line=function(a,b){THREE.Object3D.call(this);this.geometry=a;this.material=b instanceof Array?b:[b]};THREE.Line.prototype=new THREE.Object3D;THREE.Line.prototype.constructor=THREE.Line; -THREE.Mesh=function(a,b,f){THREE.Object3D.call(this);this.geometry=a;this.material=b instanceof Array?b:[b];this.overdraw=this.doubleSided=this.flipSided=false;this.materialFaceGroup={};this.sortFacesByMaterial();f&&this.normalizeUVs();this.geometry.computeBoundingBox()};THREE.Mesh.prototype=new THREE.Object3D;THREE.Mesh.prototype.constructor=THREE.Mesh; -THREE.Mesh.prototype.sortFacesByMaterial=function(){function a(l){var i=[];b=0;for(f=l.length;b65535){g[t].counter+=1;e=g[t].hash+"_"+g[t].counter;if(this.materialFaceGroup[e]==undefined)this.materialFaceGroup[e]={faces:[],material:o,vertices:0}}this.materialFaceGroup[e].faces.push(c);this.materialFaceGroup[e].vertices+=j}};THREE.Mesh.prototype.normalizeUVs=function(){var a,b,f,c,d;a=0;for(b=this.geometry.uvs.length;a65535){g[t].counter+=1;e=g[t].hash+"_"+g[t].counter;if(this.materialFaceGroup[e]==undefined)this.materialFaceGroup[e]={faces:[],material:n,vertices:0}}this.materialFaceGroup[e].faces.push(b);this.materialFaceGroup[e].vertices+=j}};THREE.Mesh.prototype.normalizeUVs=function(){var a,c,f,b,d;a=0;for(c=this.geometry.uvs.length;acolor: "+this.color+"
opacity: "+this.opacity+"
blending: "+this.blending+"
linewidth: "+ this.linewidth+"
)"}}; -THREE.MeshBasicMaterial=function(a){this.id=THREE.MeshBasicMaterialCounter.value++;this.color=new THREE.Color(15658734);this.map=null;this.opacity=1;this.blending=THREE.NormalBlending;this.wireframe=false;this.wireframe_linewidth=1;if(a){a.color!==undefined&&this.color.setHex(a.color);if(a.map!==undefined)this.map=a.map;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.blending!==undefined)this.blending=a.blending;if(a.wireframe!==undefined)this.wireframe=a.wireframe;if(a.wireframe_linewidth!== -undefined)this.wireframe_linewidth=a.wireframe_linewidth}this.toString=function(){return"THREE.MeshBasicMaterial (
id: "+this.id+"
color: "+this.color+"
map: "+this.map+"
opacity: "+this.opacity+"
blending: "+this.blending+"
wireframe: "+this.wireframe+"
wireframe_linewidth: "+this.wireframe_linewidth+"
)"}};THREE.MeshBasicMaterialCounter={value:0}; -THREE.MeshLambertMaterial=function(a){this.id=THREE.MeshLambertMaterialCounter.value++;this.color=new THREE.Color(15658734);this.map=null;this.opacity=1;this.shading=THREE.SmoothShading;this.blending=THREE.NormalBlending;this.wireframe=false;this.wireframe_linewidth=1;if(a){a.color!==undefined&&this.color.setHex(a.color);if(a.map!==undefined)this.map=a.map;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.shading!==undefined)this.shading=a.shading;if(a.blending!==undefined)this.blending=a.blending; -if(a.wireframe!==undefined)this.wireframe=a.wireframe;if(a.wireframe_linewidth!==undefined)this.wireframe_linewidth=a.wireframe_linewidth}this.toString=function(){return"THREE.MeshLambertMaterial (
id: "+this.id+"
color: "+this.color+"
map: "+this.map+"
opacity: "+this.opacity+"
shading: "+this.shading+"
blending: "+this.blending+"
wireframe: "+this.wireframe+"
wireframe_size: "+this.wireframe_linewidth+"
)"}};THREE.MeshLambertMaterialCounter={value:0}; -THREE.MeshPhongMaterial=function(a){this.id=THREE.MeshPhongMaterialCounter.value++;this.color=new THREE.Color(15658734);this.map=null;this.ambient=new THREE.Color(328965);this.specular=new THREE.Color(1118481);this.specular_map=null;this.shininess=30;this.opacity=1;this.shading=THREE.SmoothShading;this.blending=THREE.NormalBlending;this.wireframe=false;this.wireframe_linewidth=1;if(a){if(a.color!==undefined)this.color=new THREE.Color(a.color);if(a.map!==undefined)this.map=a.map;if(a.ambient!==undefined)this.ambient= -new THREE.Color(a.ambient);if(a.specular!==undefined)this.specular=new THREE.Color(a.specular);if(a.specular_map!==undefined)this.specular_map=a.specular_map;if(a.shininess!==undefined)this.shininess=a.shininess;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.shading!==undefined)this.shading=a.shading;if(a.blending!==undefined)this.blending=a.blending;if(a.wireframe!==undefined)this.wireframe=a.wireframe;if(a.wireframe_linewidth!==undefined)this.wireframe_linewidth=a.wireframe_linewidth}this.toString= -function(){return"THREE.MeshPhongMaterial (
id: "+this.id+"
color: "+this.color+"
map: "+this.map+"
ambient: "+this.ambient+"
specular: "+this.specular+"
specular_map: "+this.specular_map+"
shininess: "+this.shininess+"
alpha: "+this.opacity+"
shading: "+this.shading+"
wireframe: "+this.wireframe+"
wireframe_linewidth: "+this.wireframe_linewidth+"
"+ +")"}};THREE.MeshPhongMaterialCounter={value:0}; +THREE.MeshBasicMaterial=function(a){this.id=THREE.MeshBasicMaterialCounter.value++;this.color=new THREE.Color(15658734);this.env_map=this.map=null;this.opacity=this.reflectivity=1;this.blending=THREE.NormalBlending;this.wireframe=false;this.wireframe_linewidth=1;if(a){a.color!==undefined&&this.color.setHex(a.color);if(a.map!==undefined)this.map=a.map;if(a.env_map!==undefined)this.env_map=a.env_map;if(a.reflectivity!==undefined)this.reflectivity=a.reflectivity;if(a.opacity!==undefined)this.opacity= +a.opacity;if(a.blending!==undefined)this.blending=a.blending;if(a.wireframe!==undefined)this.wireframe=a.wireframe;if(a.wireframe_linewidth!==undefined)this.wireframe_linewidth=a.wireframe_linewidth}this.toString=function(){return"THREE.MeshBasicMaterial (
id: "+this.id+"
color: "+this.color+"
map: "+this.map+"
env_map: "+this.env_map+"
reflectivity: "+this.reflectivity+"
opacity: "+this.opacity+"
blending: "+this.blending+"
wireframe: "+this.wireframe+"
wireframe_linewidth: "+ +this.wireframe_linewidth+"
)"}};THREE.MeshBasicMaterialCounter={value:0}; +THREE.MeshLambertMaterial=function(a){this.id=THREE.MeshLambertMaterialCounter.value++;this.color=new THREE.Color(15658734);this.env_map=this.map=null;this.opacity=this.reflectivity=1;this.shading=THREE.SmoothShading;this.blending=THREE.NormalBlending;this.wireframe=false;this.wireframe_linewidth=1;if(a){a.color!==undefined&&this.color.setHex(a.color);if(a.map!==undefined)this.map=a.map;if(a.env_map!==undefined)this.env_map=a.env_map;if(a.reflectivity!==undefined)this.reflectivity=a.reflectivity; +if(a.opacity!==undefined)this.opacity=a.opacity;if(a.shading!==undefined)this.shading=a.shading;if(a.blending!==undefined)this.blending=a.blending;if(a.wireframe!==undefined)this.wireframe=a.wireframe;if(a.wireframe_linewidth!==undefined)this.wireframe_linewidth=a.wireframe_linewidth}this.toString=function(){return"THREE.MeshLambertMaterial (
id: "+this.id+"
color: "+this.color+"
map: "+this.map+"
env_map: "+this.env_map+"
reflectivity: "+this.reflectivity+"
opacity: "+this.opacity+ +"
shading: "+this.shading+"
blending: "+this.blending+"
wireframe: "+this.wireframe+"
wireframe_size: "+this.wireframe_linewidth+"
)"}};THREE.MeshLambertMaterialCounter={value:0}; +THREE.MeshPhongMaterial=function(a){this.id=THREE.MeshPhongMaterialCounter.value++;this.color=new THREE.Color(15658734);this.map=null;this.ambient=new THREE.Color(328965);this.specular=new THREE.Color(1118481);this.env_map=this.specular_map=null;this.shininess=30;this.opacity=this.reflectivity=1;this.shading=THREE.SmoothShading;this.blending=THREE.NormalBlending;this.wireframe=false;this.wireframe_linewidth=1;if(a){if(a.color!==undefined)this.color=new THREE.Color(a.color);if(a.map!==undefined)this.map= +a.map;if(a.ambient!==undefined)this.ambient=new THREE.Color(a.ambient);if(a.specular!==undefined)this.specular=new THREE.Color(a.specular);if(a.specular_map!==undefined)this.specular_map=a.specular_map;if(a.env_map!==undefined)this.env_map=a.env_map;if(a.shininess!==undefined)this.shininess=a.shininess;if(a.reflectivity!==undefined)this.reflectivity=a.reflectivity;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.shading!==undefined)this.shading=a.shading;if(a.blending!==undefined)this.blending= +a.blending;if(a.wireframe!==undefined)this.wireframe=a.wireframe;if(a.wireframe_linewidth!==undefined)this.wireframe_linewidth=a.wireframe_linewidth}this.toString=function(){return"THREE.MeshPhongMaterial (
id: "+this.id+"
color: "+this.color+"
map: "+this.map+"
env_map: "+this.env_map+"
ambient: "+this.ambient+"
specular: "+this.specular+"
specular_map: "+this.specular_map+"
shininess: "+this.shininess+"
reflectivity: "+this.reflectivity+"
opacity: "+this.opacity+ +"
shading: "+this.shading+"
wireframe: "+this.wireframe+"
wireframe_linewidth: "+this.wireframe_linewidth+"
"+ +")"}};THREE.MeshPhongMaterialCounter={value:0}; THREE.MeshDepthMaterial=function(a){this.near=1;this.far=1E3;this.opacity=1;this.blending=THREE.NormalBlending;if(a){if(a.near!==undefined)this.near=a.near;if(a.far!==undefined)this.far=a.far;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.blending!==undefined)this.blending=a.blending}this.__2near=2*this.near;this.__farPlusNear=this.far+this.near;this.__farMinusNear=this.far-this.near;this.toString=function(){return"THREE.MeshDepthMaterial"}}; THREE.MeshNormalMaterial=function(a){this.opacity=1;this.shading=THREE.FlatShading;this.blending=THREE.NormalBlending;if(a){if(a.opacity!==undefined)this.opacity=a.opacity;if(a.shading!==undefined)this.shading=a.shading;if(a.blending!==undefined)this.blending=a.blending}this.toString=function(){return"THREE.MeshNormalMaterial"}};THREE.MeshFaceMaterial=function(){this.toString=function(){return"THREE.MeshFaceMaterial"}}; THREE.ParticleBasicMaterial=function(a){this.color=new THREE.Color(16711680);this.map=null;this.opacity=1;this.blending=THREE.NormalBlending;this.offset=new THREE.Vector2;if(a){a.color!==undefined&&this.color.setHex(a.color);if(a.map!==undefined)this.map=a.map;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.blending!==undefined)this.blending=a.blending}this.toString=function(){return"THREE.ParticleBasicMaterial (
color: "+this.color+"
map: "+this.map+"
opacity: "+this.opacity+"
blending: "+ this.blending+"
)"}};THREE.ParticleCircleMaterial=function(a){this.color=new THREE.Color(16711680);this.opacity=1;this.blending=THREE.NormalBlending;if(a){a.color!==undefined&&this.color.setHex(a.color);if(a.opacity!==undefined)this.opacity=a.opacity;if(a.blending!==undefined)this.blending=a.blending}this.toString=function(){return"THREE.ParticleCircleMaterial (
color: "+this.color+"
opacity: "+this.opacity+"
blending: "+this.blending+"
)"}}; -THREE.ParticleDOMMaterial=function(a){this.domElement=a;this.toString=function(){return"THREE.ParticleDOMMaterial ( domElement: "+this.domElement+" )"}};THREE.Texture=function(a,b){this.image=a;this.mapping=b?b:THREE.UVMapping;this.toString=function(){return"THREE.Texture (
image: "+this.image+"
mapping: "+this.mapping+"
)"}};THREE.UVMapping=0;THREE.ReflectionMap=1;THREE.CubeMap=2; +THREE.ParticleDOMMaterial=function(a){this.domElement=a;this.toString=function(){return"THREE.ParticleDOMMaterial ( domElement: "+this.domElement+" )"}};THREE.Texture=function(a,c){this.image=a;this.mapping=c?c:THREE.UVMapping;this.toString=function(){return"THREE.Texture (
image: "+this.image+"
mapping: "+this.mapping+"
)"}};THREE.UVMapping=0;THREE.ReflectionMap=1;THREE.RefractionMap=2; +THREE.TextureCube=function(a,c){this.image=a;this.mapping=c?c:THREE.ReflectionMap;this.toString=function(){return"THREE.TextureCube (
image: "+this.image+"
mapping: "+this.mapping+"
)"}}; THREE.Scene=function(){this.objects=[];this.lights=[];this.addObject=function(a){this.objects.push(a)};this.removeObject=function(a){a=this.objects.indexOf(a);a!==-1&&this.objects.splice(a,1)};this.addLight=function(a){this.lights.push(a)};this.removeLight=function(a){a=this.lights.indexOf(a);a!==-1&&this.lights.splice(a,1)};this.toString=function(){return"THREE.Scene ( "+this.objects+" )"}}; -THREE.Projector=function(){function a(h,B){var q;q=0;var D=1,u=h.z+h.w,L=B.z+B.w,v=-h.z+h.w,s=-B.z+B.w;if(u>=0&&L>=0&&v>=0&&s>=0)q=true;else if(u<0&&L<0||v<0&&s<0)q=false;else{if(u<0)q=Math.max(q,u/(u-L));else if(L<0)D=Math.min(D,u/(u-L));if(v<0)q=Math.max(q,v/(v-s));else if(s<0)D=Math.min(D,v/(v-s));if(D0&&F.z<1}X=s.geometry.faces;u=0;for(L=X.length;u< -L;u++){F=X[u];if(F instanceof THREE.Face3){Q=M[F.a];z=M[F.b];N=M[F.c];if(Q.__visible&&z.__visible&&N.__visible)if(s.doubleSided||s.flipSided!=(N.positionScreen.x-Q.positionScreen.x)*(z.positionScreen.y-Q.positionScreen.y)-(N.positionScreen.y-Q.positionScreen.y)*(z.positionScreen.x-Q.positionScreen.x)<0){f=d[c]=d[c]||new THREE.RenderableFace3;f.v1.positionScreen.copy(Q.positionScreen);f.v2.positionScreen.copy(z.positionScreen);f.v3.positionScreen.copy(N.positionScreen);f.normalWorld.copy(F.normal); -s.matrixRotation.transform(f.normalWorld);f.centroidWorld.copy(F.centroid);y.transform(f.centroidWorld);f.centroidScreen.copy(f.centroidWorld);p.transform(f.centroidScreen);f.z=f.centroidScreen.z;f.meshMaterial=s.material;f.faceMaterial=F.material;f.overdraw=s.overdraw;f.uvs=s.geometry.uvs[u];f.color=F.color;b.push(f);c++}}else if(F instanceof THREE.Face4){Q=M[F.a];z=M[F.b];N=M[F.c];K=M[F.d];if(Q.__visible&&z.__visible&&N.__visible&&K.__visible)if(s.doubleSided||s.flipSided!=((K.positionScreen.x- -Q.positionScreen.x)*(z.positionScreen.y-Q.positionScreen.y)-(K.positionScreen.y-Q.positionScreen.y)*(z.positionScreen.x-Q.positionScreen.x)<0||(z.positionScreen.x-N.positionScreen.x)*(K.positionScreen.y-N.positionScreen.y)-(z.positionScreen.y-N.positionScreen.y)*(K.positionScreen.x-N.positionScreen.x)<0)){j=t[o]=t[o]||new THREE.RenderableFace4;j.v1.positionScreen.copy(Q.positionScreen);j.v2.positionScreen.copy(z.positionScreen);j.v3.positionScreen.copy(N.positionScreen);j.v4.positionScreen.copy(K.positionScreen); -j.normalWorld.copy(F.normal);s.matrixRotation.transform(j.normalWorld);j.centroidWorld.copy(F.centroid);y.transform(j.centroidWorld);j.centroidScreen.copy(j.centroidWorld);p.transform(j.centroidScreen);j.z=j.centroidScreen.z;j.meshMaterial=s.material;j.faceMaterial=F.material;j.overdraw=s.overdraw;j.uvs=s.geometry.uvs[u];j.color=F.color;b.push(j);o++}}}}else if(s instanceof THREE.Line){x.multiply(p,y);M=s.geometry.vertices;u=0;for(L=M.length;u0&&n.z<1){i=r[m]=r[m]||new THREE.RenderableParticle;i.x=n.x/n.w;i.y=n.y/n.w;i.z= -n.z;i.rotation=s.rotation.z;i.scale.x=s.scale.x*Math.abs(i.x-(n.x+B.projectionMatrix.n11)/(n.w+B.projectionMatrix.n14));i.scale.y=s.scale.y*Math.abs(i.y-(n.y+B.projectionMatrix.n22)/(n.w+B.projectionMatrix.n24));i.material=s.material;b.push(i);m++}}}b.sort(function(V,C){return C.z-V.z});return b};this.unprojectVector=function(h,B){var q=new THREE.Matrix4;q.multiply(THREE.Matrix4.makeInvert(B.matrix),THREE.Matrix4.makeInvert(B.projectionMatrix));q.transform(h);return h}}; -THREE.DOMRenderer=function(){THREE.Renderer.call(this);var a=null,b=new THREE.Projector,f,c,d,j;this.domElement=document.createElement("div");this.setSize=function(o,t){f=o;c=t;d=f/2;j=c/2};this.render=function(o,t){var e,g,l,i,m,r,n,p;a=b.projectScene(o,t);e=0;for(g=a.length;e0){I.r+=H.r*k;I.g+=H.g*k;I.b+=H.b*k}}else if(k instanceof THREE.PointLight){Ha.sub(k.position,O.centroidWorld);Ha.normalize();k=O.normalWorld.dot(Ha)*k.intensity;if(k>0){I.r+=H.r*k;I.g+=H.g*k;I.b+=H.b*k}}}}function b(G,O,I,J,k,H){Y=G.positionScreen.x;Z=G.positionScreen.y;Q=O.positionScreen.x; -z=O.positionScreen.y;N=I.positionScreen.x;K=I.positionScreen.y;if(k.opacity!=B)h.globalAlpha=B=k.opacity;k.blending!=q&&o(k.blending);if(k.map){fa=k.map.image;qa=fa.width-1;ra=fa.height-1;da.u=J.uvs[0].u*qa;da.v=J.uvs[0].v*ra;$.u=J.uvs[1].u*qa;$.v=J.uvs[1].v*ra;ea.u=J.uvs[2].u*qa;ea.v=J.uvs[2].v*ra;j(fa,Y,Z,Q,z,N,K,da.u,da.v,$.u,$.v,ea.u,ea.v)}else if(k instanceof THREE.MeshBasicMaterial)c(Y,Z,Q,z,N,K,k.color,k.wireframe,k.wireframe_linewidth);else if(k instanceof THREE.MeshLambertMaterial){if(Da){ba.r= -ga.r;ba.g=ga.g;ba.b=ga.b;a(H,J,ba);R.r=k.color.r*ba.r;R.g=k.color.g*ba.g;R.b=k.color.b*ba.b;R.updateStyleString()}else R.__styleString=k.color.__styleString;c(Y,Z,Q,z,N,K,R,k.wireframe,k.wireframe_linewidth)}else if(k instanceof THREE.MeshDepthMaterial){sa=k.__2near;ta=k.__farPlusNear;ua=k.__farMinusNear;U=~~((1-sa/(ta-G.positionScreen.z*ua))*255);ha=~~((1-sa/(ta-O.positionScreen.z*ua))*255);na=~~((1-sa/(ta-I.positionScreen.z*ua))*255);fa=t([U,U,U],[ha,ha,ha],[na,na,na],[na,na,na]);da.u=0;da.v=0; -$.u=la;$.v=0;ea.u=0;ea.v=la;j(fa,Y,Z,Q,z,N,K,da.u,da.v,$.u,$.v,ea.u,ea.v)}else if(k instanceof THREE.MeshNormalMaterial){R.r=e(J.normalWorld.x);R.g=e(J.normalWorld.y);R.b=e(J.normalWorld.z);R.updateStyleString();c(Y,Z,Q,z,N,K,R,k.wireframe,k.wireframe_linewidth)}}function f(G,O,I,J,k,H,S,w,T){Y=G.positionScreen.x;Z=G.positionScreen.y;Q=O.positionScreen.x;z=O.positionScreen.y;N=I.positionScreen.x;K=I.positionScreen.y;V=J.positionScreen.x;C=J.positionScreen.y;A=k.positionScreen.x;W=k.positionScreen.y; -pa=H.positionScreen.x;P=H.positionScreen.y;if(w.opacity!=B)h.globalAlpha=B=w.opacity;w.blending!=q&&o(w.blending);if(w.map){fa=w.map.image;qa=fa.width-1;ra=fa.height-1;da.copy(S.uvs[0]);$.copy(S.uvs[1]);ea.copy(S.uvs[2]);ia.copy(S.uvs[3]);da.u*=qa;da.v*=ra;$.u*=qa;$.v*=ra;ea.u*=qa;ea.v*=ra;ia.u*=qa;ia.v*=ra;j(fa,Y,Z,Q,z,V,C,da.u,da.v,$.u,$.v,ia.u,ia.v);j(fa,A,W,N,K,pa,P,$.u,$.v,ea.u,ea.v,ia.u,ia.v)}else if(w instanceof THREE.MeshBasicMaterial)d(Y,Z,Q,z,N,K,V,C,w.color,w.wireframe,w.wireframe_linewidth); +THREE.Projector=function(){function a(h,B){var q;q=0;var D=1,u=h.z+h.w,L=B.z+B.w,v=-h.z+h.w,s=-B.z+B.w;if(u>=0&&L>=0&&v>=0&&s>=0)q=true;else if(u<0&&L<0||v<0&&s<0)q=false;else{if(u<0)q=Math.max(q,u/(u-L));else if(L<0)D=Math.min(D,u/(u-L));if(v<0)q=Math.max(q,v/(v-s));else if(s<0)D=Math.min(D,v/(v-s));if(D0&&F.z<1}X=s.geometry.faces;u=0;for(L=X.length;u< +L;u++){F=X[u];if(F instanceof THREE.Face3){Q=M[F.a];z=M[F.b];N=M[F.c];if(Q.__visible&&z.__visible&&N.__visible)if(s.doubleSided||s.flipSided!=(N.positionScreen.x-Q.positionScreen.x)*(z.positionScreen.y-Q.positionScreen.y)-(N.positionScreen.y-Q.positionScreen.y)*(z.positionScreen.x-Q.positionScreen.x)<0){f=d[b]=d[b]||new THREE.RenderableFace3;f.v1.positionScreen.copy(Q.positionScreen);f.v2.positionScreen.copy(z.positionScreen);f.v3.positionScreen.copy(N.positionScreen);f.normalWorld.copy(F.normal); +s.matrixRotation.transform(f.normalWorld);f.centroidWorld.copy(F.centroid);y.transform(f.centroidWorld);f.centroidScreen.copy(f.centroidWorld);p.transform(f.centroidScreen);f.z=f.centroidScreen.z;f.meshMaterial=s.material;f.faceMaterial=F.material;f.overdraw=s.overdraw;f.uvs=s.geometry.uvs[u];f.color=F.color;c.push(f);b++}}else if(F instanceof THREE.Face4){Q=M[F.a];z=M[F.b];N=M[F.c];K=M[F.d];if(Q.__visible&&z.__visible&&N.__visible&&K.__visible)if(s.doubleSided||s.flipSided!=((K.positionScreen.x- +Q.positionScreen.x)*(z.positionScreen.y-Q.positionScreen.y)-(K.positionScreen.y-Q.positionScreen.y)*(z.positionScreen.x-Q.positionScreen.x)<0||(z.positionScreen.x-N.positionScreen.x)*(K.positionScreen.y-N.positionScreen.y)-(z.positionScreen.y-N.positionScreen.y)*(K.positionScreen.x-N.positionScreen.x)<0)){j=t[n]=t[n]||new THREE.RenderableFace4;j.v1.positionScreen.copy(Q.positionScreen);j.v2.positionScreen.copy(z.positionScreen);j.v3.positionScreen.copy(N.positionScreen);j.v4.positionScreen.copy(K.positionScreen); +j.normalWorld.copy(F.normal);s.matrixRotation.transform(j.normalWorld);j.centroidWorld.copy(F.centroid);y.transform(j.centroidWorld);j.centroidScreen.copy(j.centroidWorld);p.transform(j.centroidScreen);j.z=j.centroidScreen.z;j.meshMaterial=s.material;j.faceMaterial=F.material;j.overdraw=s.overdraw;j.uvs=s.geometry.uvs[u];j.color=F.color;c.push(j);n++}}}}else if(s instanceof THREE.Line){x.multiply(p,y);M=s.geometry.vertices;u=0;for(L=M.length;u0&&o.z<1){i=r[l]=r[l]||new THREE.RenderableParticle;i.x=o.x/o.w;i.y=o.y/o.w;i.z= +o.z;i.rotation=s.rotation.z;i.scale.x=s.scale.x*Math.abs(i.x-(o.x+B.projectionMatrix.n11)/(o.w+B.projectionMatrix.n14));i.scale.y=s.scale.y*Math.abs(i.y-(o.y+B.projectionMatrix.n22)/(o.w+B.projectionMatrix.n24));i.material=s.material;c.push(i);l++}}}c.sort(function(V,C){return C.z-V.z});return c};this.unprojectVector=function(h,B){var q=new THREE.Matrix4;q.multiply(THREE.Matrix4.makeInvert(B.matrix),THREE.Matrix4.makeInvert(B.projectionMatrix));q.transform(h);return h}}; +THREE.DOMRenderer=function(){THREE.Renderer.call(this);var a=null,c=new THREE.Projector,f,b,d,j;this.domElement=document.createElement("div");this.setSize=function(n,t){f=n;b=t;d=f/2;j=b/2};this.render=function(n,t){var e,g,m,i,l,r,o,p;a=c.projectScene(n,t);e=0;for(g=a.length;e0){I.r+=H.r*k;I.g+=H.g*k;I.b+=H.b*k}}else if(k instanceof THREE.PointLight){Ha.sub(k.position,O.centroidWorld);Ha.normalize();k=O.normalWorld.dot(Ha)*k.intensity;if(k>0){I.r+=H.r*k;I.g+=H.g*k;I.b+=H.b*k}}}}function c(G,O,I,J,k,H){Y=G.positionScreen.x;Z=G.positionScreen.y;Q=O.positionScreen.x; +z=O.positionScreen.y;N=I.positionScreen.x;K=I.positionScreen.y;if(k.opacity!=B)h.globalAlpha=B=k.opacity;k.blending!=q&&n(k.blending);if(k.map){fa=k.map.image;qa=fa.width-1;ra=fa.height-1;da.u=J.uvs[0].u*qa;da.v=J.uvs[0].v*ra;$.u=J.uvs[1].u*qa;$.v=J.uvs[1].v*ra;ea.u=J.uvs[2].u*qa;ea.v=J.uvs[2].v*ra;j(fa,Y,Z,Q,z,N,K,da.u,da.v,$.u,$.v,ea.u,ea.v)}else if(k instanceof THREE.MeshBasicMaterial)b(Y,Z,Q,z,N,K,k.color,k.wireframe,k.wireframe_linewidth);else if(k instanceof THREE.MeshLambertMaterial){if(Da){ba.r= +ga.r;ba.g=ga.g;ba.b=ga.b;a(H,J,ba);R.r=k.color.r*ba.r;R.g=k.color.g*ba.g;R.b=k.color.b*ba.b;R.updateStyleString()}else R.__styleString=k.color.__styleString;b(Y,Z,Q,z,N,K,R,k.wireframe,k.wireframe_linewidth)}else if(k instanceof THREE.MeshDepthMaterial){sa=k.__2near;ta=k.__farPlusNear;ua=k.__farMinusNear;U=~~((1-sa/(ta-G.positionScreen.z*ua))*255);ha=~~((1-sa/(ta-O.positionScreen.z*ua))*255);na=~~((1-sa/(ta-I.positionScreen.z*ua))*255);fa=t([U,U,U],[ha,ha,ha],[na,na,na],[na,na,na]);da.u=0;da.v=0; +$.u=la;$.v=0;ea.u=0;ea.v=la;j(fa,Y,Z,Q,z,N,K,da.u,da.v,$.u,$.v,ea.u,ea.v)}else if(k instanceof THREE.MeshNormalMaterial){R.r=e(J.normalWorld.x);R.g=e(J.normalWorld.y);R.b=e(J.normalWorld.z);R.updateStyleString();b(Y,Z,Q,z,N,K,R,k.wireframe,k.wireframe_linewidth)}}function f(G,O,I,J,k,H,S,w,T){Y=G.positionScreen.x;Z=G.positionScreen.y;Q=O.positionScreen.x;z=O.positionScreen.y;N=I.positionScreen.x;K=I.positionScreen.y;V=J.positionScreen.x;C=J.positionScreen.y;A=k.positionScreen.x;W=k.positionScreen.y; +pa=H.positionScreen.x;P=H.positionScreen.y;if(w.opacity!=B)h.globalAlpha=B=w.opacity;w.blending!=q&&n(w.blending);if(w.map){fa=w.map.image;qa=fa.width-1;ra=fa.height-1;da.copy(S.uvs[0]);$.copy(S.uvs[1]);ea.copy(S.uvs[2]);ia.copy(S.uvs[3]);da.u*=qa;da.v*=ra;$.u*=qa;$.v*=ra;ea.u*=qa;ea.v*=ra;ia.u*=qa;ia.v*=ra;j(fa,Y,Z,Q,z,V,C,da.u,da.v,$.u,$.v,ia.u,ia.v);j(fa,A,W,N,K,pa,P,$.u,$.v,ea.u,ea.v,ia.u,ia.v)}else if(w instanceof THREE.MeshBasicMaterial)d(Y,Z,Q,z,N,K,V,C,w.color,w.wireframe,w.wireframe_linewidth); else if(w instanceof THREE.MeshLambertMaterial){if(Da){ba.r=ga.r;ba.g=ga.g;ba.b=ga.b;a(T,S,ba);R.r=w.color.r*ba.r;R.g=w.color.g*ba.g;R.b=w.color.b*ba.b;R.updateStyleString()}else R.__styleString=w.color.__styleString;d(Y,Z,Q,z,N,K,V,C,R,w.wireframe,w.wireframe_linewidth)}else if(w instanceof THREE.MeshDepthMaterial){sa=w.__2near;ta=w.__farPlusNear;ua=w.__farMinusNear;U=~~((1-sa/(ta-G.positionScreen.z*ua))*255);ha=~~((1-sa/(ta-O.positionScreen.z*ua))*255);na=~~((1-sa/(ta-I.positionScreen.z*ua))*255); -Ea=~~((1-sa/(ta-J.positionScreen.z*ua))*255);fa=t([U,U,U],[ha,ha,ha],[Ea,Ea,Ea],[na,na,na]);da.u=0;da.v=0;$.u=la;$.v=0;ea.u=la;ea.v=la;ia.u=0;ia.v=la;j(fa,Y,Z,Q,z,V,C,da.u,da.v,$.u,$.v,ia.u,ia.v);j(fa,A,W,N,K,pa,P,$.u,$.v,ea.u,ea.v,ia.u,ia.v)}else if(w instanceof THREE.MeshNormalMaterial){R.r=e(S.normalWorld.x);R.g=e(S.normalWorld.y);R.b=e(S.normalWorld.z);R.updateStyleString();d(Y,Z,Q,z,N,K,V,C,R,w.wireframe,w.wireframe_linewidth)}}function c(G,O,I,J,k,H,S,w,T){h.beginPath();h.moveTo(G,O);h.lineTo(I, +Ea=~~((1-sa/(ta-J.positionScreen.z*ua))*255);fa=t([U,U,U],[ha,ha,ha],[Ea,Ea,Ea],[na,na,na]);da.u=0;da.v=0;$.u=la;$.v=0;ea.u=la;ea.v=la;ia.u=0;ia.v=la;j(fa,Y,Z,Q,z,V,C,da.u,da.v,$.u,$.v,ia.u,ia.v);j(fa,A,W,N,K,pa,P,$.u,$.v,ea.u,ea.v,ia.u,ia.v)}else if(w instanceof THREE.MeshNormalMaterial){R.r=e(S.normalWorld.x);R.g=e(S.normalWorld.y);R.b=e(S.normalWorld.z);R.updateStyleString();d(Y,Z,Q,z,N,K,V,C,R,w.wireframe,w.wireframe_linewidth)}}function b(G,O,I,J,k,H,S,w,T){h.beginPath();h.moveTo(G,O);h.lineTo(I, J);h.lineTo(k,H);h.lineTo(G,O);h.closePath();if(w){if(L!=T)h.lineWidth=L=T;if(D!=S.__styleString)h.strokeStyle=D=S.__styleString;h.stroke();aa.inflate(T*2)}else{if(u!=S.__styleString)h.fillStyle=u=S.__styleString;h.fill()}}function d(G,O,I,J,k,H,S,w,T,E,ca){h.beginPath();h.moveTo(G,O);h.lineTo(I,J);h.lineTo(k,H);h.lineTo(S,w);h.lineTo(G,O);h.closePath();if(E){if(L!=ca)h.lineWidth=L=ca;if(D!=T.__styleString)h.strokeStyle=D=T.__styleString;h.stroke();aa.inflate(ca*2)}else{if(u!=T.__styleString)h.fillStyle= -u=T.__styleString;h.fill()}}function j(G,O,I,J,k,H,S,w,T,E,ca,ma,va){h.beginPath();h.moveTo(O,I);h.lineTo(J,k);h.lineTo(H,S);h.closePath();J-=O;k-=I;H-=O;S-=I;E-=w;ca-=T;ma-=w;va-=T;var wa=1/(E*va-ma*ca),za=(va*J-ca*H)*wa;ca=(va*k-ca*S)*wa;J=(E*H-ma*J)*wa;k=(E*S-ma*k)*wa;O=O-za*w-J*T;I=I-ca*w-k*T;h.save();h.transform(za,ca,J,k,O,I);h.clip();h.drawImage(G,0,0);h.restore()}function o(G){switch(G){case THREE.NormalBlending:h.globalCompositeOperation="source-over";break;case THREE.AdditiveBlending:h.globalCompositeOperation= -"lighter";break;case THREE.SubtractiveBlending:h.globalCompositeOperation="darker"}q=G}function t(G,O,I,J){ja[0]=G[0];ja[1]=G[1];ja[2]=G[2];ja[4]=O[0];ja[5]=O[1];ja[6]=O[2];ja[8]=I[0];ja[9]=I[1];ja[10]=I[2];ja[12]=J[0];ja[13]=J[1];ja[14]=J[2];Aa.putImageData(Ia,0,0);Fa.drawImage(Ba,0,0);return Ca}function e(G){return G<0?Math.min((1+G)*0.5,0.5):0.5+Math.min(G*0.5,0.5)}function g(G,O){var I=O.x-G.x,J=O.y-G.y,k=1/Math.sqrt(I*I+J*J);I*=k;J*=k;O.x+=I;O.y+=J;G.x-=I;G.y-=J}var l=null,i=new THREE.Projector, -m=document.createElement("canvas"),r,n,p,x,h=m.getContext("2d"),B=1,q=0,D=null,u=null,L=1,v,s,y,M,X=new THREE.Vertex,F=new THREE.Vertex,Y,Z,Q,z,N,K,V,C,A,W,pa,P,U,ha,na,Ea,sa,ta,ua,fa,qa,ra,oa=new THREE.Rectangle,ka=new THREE.Rectangle,aa=new THREE.Rectangle,Da=false,R=new THREE.Color(4294967295),ba=new THREE.Color(4294967295),ga=new THREE.Color(4278190080),xa=new THREE.Color(4278190080),ya=new THREE.Color(4278190080),Ma=Math.PI*2,Ha=new THREE.Vector3,da=new THREE.UV,$=new THREE.UV,ea=new THREE.UV, -ia=new THREE.UV,Ba,Aa,Ia,ja,Ca,Fa,la=16;Ba=document.createElement("canvas");Ba.width=Ba.height=2;Aa=Ba.getContext("2d");Aa.fillStyle="rgba(0,0,0,1)";Aa.fillRect(0,0,2,2);Ia=Aa.getImageData(0,0,2,2);ja=Ia.data;Ca=document.createElement("canvas");Ca.width=Ca.height=la;Fa=Ca.getContext("2d");Fa.translate(-la/2,-la/2);Fa.scale(la,la);la--;this.domElement=m;this.autoClear=true;this.setSize=function(G,O){r=G;n=O;p=r/2;x=n/2;m.width=r;m.height=n;h.lineJoin="round";h.lineCap="round";oa.set(-p,-x,p,x)};this.clear= -function(){if(!ka.isEmpty()){ka.inflate(1);ka.minSelf(oa);h.setTransform(1,0,0,-1,p,x);h.clearRect(ka.getX(),ka.getY(),ka.getWidth(),ka.getHeight());ka.empty()}};this.render=function(G,O){var I,J,k,H,S,w,T,E;this.autoClear&&this.clear();l=i.projectScene(G,O);h.setTransform(1,0,0,-1,p,x);h.fillStyle="rgba(0, 255, 255, 0.5)";h.fillRect(oa.getX(),oa.getY(),oa.getWidth(),oa.getHeight());if(Da=G.lights.length>0){S=G.lights;ga.setRGB(0,0,0);xa.setRGB(0,0,0);ya.setRGB(0,0,0);I=0;for(J=S.length;I0){S=G.lights;ga.setRGB(0,0,0);xa.setRGB(0,0,0);ya.setRGB(0,0,0);I=0;for(J=S.length;I0){K.r+=A.color.r*W;K.g+=A.color.g*W;K.b+=A.color.b*W}}else if(A instanceof THREE.PointLight){y.sub(A.position,N.centroidWorld);y.normalize();W=N.normalWorld.dot(y)*A.intensity;if(W>0){K.r+=A.color.r*W;K.g+=A.color.g*W;K.b+=A.color.b*W}}}}function b(z,N,K,V,C,A){F=c(Y++);F.setAttribute("d","M "+z.positionScreen.x+ +THREE.SVGRenderer=function(){function a(z,N,K){var V,C,A,W;V=0;for(C=z.lights.length;V0){K.r+=A.color.r*W;K.g+=A.color.g*W;K.b+=A.color.b*W}}else if(A instanceof THREE.PointLight){y.sub(A.position,N.centroidWorld);y.normalize();W=N.normalWorld.dot(y)*A.intensity;if(W>0){K.r+=A.color.r*W;K.g+=A.color.g*W;K.b+=A.color.b*W}}}}function c(z,N,K,V,C,A){F=b(Y++);F.setAttribute("d","M "+z.positionScreen.x+ " "+z.positionScreen.y+" L "+N.positionScreen.x+" "+N.positionScreen.y+" L "+K.positionScreen.x+","+K.positionScreen.y+"z");if(C instanceof THREE.MeshBasicMaterial)q.__styleString=C.color.__styleString;else if(C instanceof THREE.MeshLambertMaterial)if(B){D.r=u.r;D.g=u.g;D.b=u.b;a(A,V,D);q.r=C.color.r*D.r;q.g=C.color.g*D.g;q.b=C.color.b*D.b;q.updateStyleString()}else q.__styleString=C.color.__styleString;else if(C instanceof THREE.MeshDepthMaterial){s=1-C.__2near/(C.__farPlusNear-V.z*C.__farMinusNear); -q.setRGB(s,s,s)}else C instanceof THREE.MeshNormalMaterial&&q.setRGB(d(V.normalWorld.x),d(V.normalWorld.y),d(V.normalWorld.z));C.wireframe?F.setAttribute("style","fill: none; stroke: "+q.__styleString+"; stroke-width: "+C.wireframe_linewidth+"; stroke-opacity: "+C.opacity+"; stroke-linecap: round; stroke-linejoin: round"):F.setAttribute("style","fill: "+q.__styleString+"; fill-opacity: "+C.opacity);t.appendChild(F)}function f(z,N,K,V,C,A,W){F=c(Y++);F.setAttribute("d","M "+z.positionScreen.x+" "+ +q.setRGB(s,s,s)}else C instanceof THREE.MeshNormalMaterial&&q.setRGB(d(V.normalWorld.x),d(V.normalWorld.y),d(V.normalWorld.z));C.wireframe?F.setAttribute("style","fill: none; stroke: "+q.__styleString+"; stroke-width: "+C.wireframe_linewidth+"; stroke-opacity: "+C.opacity+"; stroke-linecap: round; stroke-linejoin: round"):F.setAttribute("style","fill: "+q.__styleString+"; fill-opacity: "+C.opacity);t.appendChild(F)}function f(z,N,K,V,C,A,W){F=b(Y++);F.setAttribute("d","M "+z.positionScreen.x+" "+ z.positionScreen.y+" L "+N.positionScreen.x+" "+N.positionScreen.y+" L "+K.positionScreen.x+","+K.positionScreen.y+" L "+V.positionScreen.x+","+V.positionScreen.y+"z");if(A instanceof THREE.MeshBasicMaterial)q.__styleString=A.color.__styleString;else if(A instanceof THREE.MeshLambertMaterial)if(B){D.r=u.r;D.g=u.g;D.b=u.b;a(W,C,D);q.r=A.color.r*D.r;q.g=A.color.g*D.g;q.b=A.color.b*D.b;q.updateStyleString()}else q.__styleString=A.color.__styleString;else if(A instanceof THREE.MeshDepthMaterial){s=1- -A.__2near/(A.__farPlusNear-C.z*A.__farMinusNear);q.setRGB(s,s,s)}else A instanceof THREE.MeshNormalMaterial&&q.setRGB(d(C.normalWorld.x),d(C.normalWorld.y),d(C.normalWorld.z));A.wireframe?F.setAttribute("style","fill: none; stroke: "+q.__styleString+"; stroke-width: "+A.wireframe_linewidth+"; stroke-opacity: "+A.opacity+"; stroke-linecap: round; stroke-linejoin: round"):F.setAttribute("style","fill: "+q.__styleString+"; fill-opacity: "+A.opacity);t.appendChild(F)}function c(z){if(M[z]==null){M[z]= -document.createElementNS("http://www.w3.org/2000/svg","path");Q==0&&M[z].setAttribute("shape-rendering","crispEdges");return M[z]}return M[z]}function d(z){return z<0?Math.min((1+z)*0.5,0.5):0.5+Math.min(z*0.5,0.5)}var j=null,o=new THREE.Projector,t=document.createElementNS("http://www.w3.org/2000/svg","svg"),e,g,l,i,m,r,n,p,x=new THREE.Rectangle,h=new THREE.Rectangle,B=false,q=new THREE.Color(4294967295),D=new THREE.Color(4294967295),u=new THREE.Color(4278190080),L=new THREE.Color(4278190080),v= -new THREE.Color(4278190080),s,y=new THREE.Vector3,M=[],X=[],F,Y,Z,Q=1;this.domElement=t;this.autoClear=true;this.setQuality=function(z){switch(z){case "high":Q=1;break;case "low":Q=0}};this.setSize=function(z,N){e=z;g=N;l=e/2;i=g/2;t.setAttribute("viewBox",-l+" "+-i+" "+e+" "+g);t.setAttribute("width",e);t.setAttribute("height",g);x.set(-l,-i,l,i)};this.clear=function(){for(;t.childNodes.length>0;)t.removeChild(t.childNodes[0])};this.render=function(z,N){var K,V,C,A,W,pa,P,U;this.autoClear&&this.clear(); -j=o.projectScene(z,N);Z=Y=0;if(B=z.lights.length>0){P=z.lights;u.setRGB(0,0,0);L.setRGB(0,0,0);v.setRGB(0,0,0);K=0;for(V=P.length;K0;)t.removeChild(t.childNodes[0])};this.render=function(z,N){var K,V,C,A,W,pa,P,U;this.autoClear&&this.clear(); +j=n.projectScene(z,N);Z=Y=0;if(B=z.lights.length>0){P=z.lights;u.setRGB(0,0,0);L.setRGB(0,0,0);v.setRGB(0,0,0);K=0;for(V=P.length;K= 0.0 )": "",g?"pointSpecularWeight = pow( pointDotNormalHalf, mShininess );":"",g?"pointDiffuse += mColor * pointDiffuseWeight;":"",g?"pointSpecular += mSpecular * pointSpecularWeight;":"",g?"}":"",e?"vec4 dirDiffuse = vec4( 0.0, 0.0, 0.0, 0.0 );":"",e?"vec4 dirSpecular = vec4( 0.0, 0.0, 0.0, 0.0 );":"",e?"for( int i = 0; i < directionalLightNumber; i++ ) {":"",e?"vec4 lDirection = viewMatrix * vec4( directionalLightDirection[ i ], 0.0 );":"",e?"vec3 dirVector = normalize( lDirection.xyz );":"",e?"vec3 dirHalfVector = normalize( lDirection.xyz + vViewPosition );": "",e?"float dirDotNormalHalf = dot( normal, dirHalfVector );":"",e?"float dirDiffuseWeight = max( dot( normal, dirVector ), 0.0 );":"",e?"float dirSpecularWeight = 0.0;":"",e?"if ( dirDotNormalHalf >= 0.0 )":"",e?"dirSpecularWeight = pow( dirDotNormalHalf, mShininess );":"",e?"dirDiffuse += mColor * dirDiffuseWeight;":"",e?"dirSpecular += mSpecular * dirSpecularWeight;":"",e?"}":"","vec4 totalLight = mAmbient;",e?"totalLight += dirDiffuse + dirSpecular;":"",g?"totalLight += pointDiffuse + pointSpecular;": -"","gl_FragColor = vec4( mapColor.rgb * totalLight.xyz * vLightWeighting, mapColor.a );\n} else if ( material == 1 ) {\ngl_FragColor = vec4( mColor.rgb * mapColor.rgb * vLightWeighting, mColor.a * mapColor.a );\n} else {\ngl_FragColor = mColor * mapColor;\n}\n}"].join("\n")));c.attachShader(d,b("vertex",[e?"#define MAX_DIR_LIGHTS "+e:"",g?"#define MAX_POINT_LIGHTS "+g:"","attribute vec3 position;\nattribute vec3 normal;\nattribute vec2 uv;\nuniform vec3 cameraPosition;\nuniform bool enableLighting;\nuniform int pointLightNumber;\nuniform int directionalLightNumber;\nuniform vec3 ambientLightColor;", +"","gl_FragColor = vec4( mapColor.rgb * cubeColor.rgb * totalLight.xyz * vLightWeighting, mapColor.a );\n} else if ( material == 1 ) {\ngl_FragColor = vec4( mColor.rgb * mapColor.rgb * cubeColor.rgb * vLightWeighting, mColor.a * mapColor.a );\n} else {\ngl_FragColor = mColor * mapColor * cubeColor;\n}\n}"].join("\n")));b.attachShader(d,c("vertex",[e?"#define MAX_DIR_LIGHTS "+e:"",g?"#define MAX_POINT_LIGHTS "+g:"","attribute vec3 position;\nattribute vec3 normal;\nattribute vec2 uv;\nuniform vec3 cameraPosition;\nuniform bool enableLighting;\nuniform int pointLightNumber;\nuniform int directionalLightNumber;\nuniform vec3 ambientLightColor;", e?"uniform vec3 directionalLightColor[ MAX_DIR_LIGHTS ];":"",e?"uniform vec3 directionalLightDirection[ MAX_DIR_LIGHTS ];":"",g?"uniform vec3 pointLightColor[ MAX_POINT_LIGHTS ];":"",g?"uniform vec3 pointLightPosition[ MAX_POINT_LIGHTS ];":"","uniform mat4 objMatrix;\nuniform mat4 viewMatrix;\nuniform mat4 modelViewMatrix;\nuniform mat4 projectionMatrix;\nuniform mat3 normalMatrix;\nvarying vec3 vNormal;\nvarying vec2 vUv;\nvarying vec3 vLightWeighting;",g?"varying vec3 vPointLightVector[ MAX_POINT_LIGHTS ];": -"","varying vec3 vViewPosition;\nvarying vec3 vFragPosition;\nvoid main(void) {\nvec4 mPosition = objMatrix * vec4( position, 1.0 );\nvViewPosition = cameraPosition - mPosition.xyz;\nvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\nvec3 transformedNormal = normalize( normalMatrix * normal );\nif ( !enableLighting ) {\nvLightWeighting = vec3( 1.0, 1.0, 1.0 );\n} else {\nvLightWeighting = ambientLightColor;",e?"for( int i = 0; i < directionalLightNumber; i++ ) {":"",e?"vec4 lDirection = viewMatrix * vec4( directionalLightDirection[ i ], 0.0 );": -"",e?"float directionalLightWeighting = max( dot( transformedNormal, normalize(lDirection.xyz ) ), 0.0 );":"",e?"vLightWeighting += directionalLightColor[ i ] * directionalLightWeighting;":"",e?"}":"",g?"for( int i = 0; i < pointLightNumber; i++ ) {":"",g?"vec4 lPosition = viewMatrix * vec4( pointLightPosition[ i ], 1.0 );":"",g?"vPointLightVector[ i ] = normalize( lPosition.xyz - mvPosition.xyz );":"",g?"float pointLightWeighting = max( dot( transformedNormal, vPointLightVector[ i ] ), 0.0 );":"", -g?"vLightWeighting += pointLightColor[ i ] * pointLightWeighting;":"",g?"}":"","}\nvNormal = transformedNormal;\nvUv = uv;\ngl_Position = projectionMatrix * mvPosition;\n}"].join("\n")));c.linkProgram(d);c.getProgramParameter(d,c.LINK_STATUS)||alert("Could not initialise shaders");c.useProgram(d);d.viewMatrix=c.getUniformLocation(d,"viewMatrix");d.modelViewMatrix=c.getUniformLocation(d,"modelViewMatrix");d.projectionMatrix=c.getUniformLocation(d,"projectionMatrix");d.normalMatrix=c.getUniformLocation(d, -"normalMatrix");d.objMatrix=c.getUniformLocation(d,"objMatrix");d.cameraPosition=c.getUniformLocation(d,"cameraPosition");d.enableLighting=c.getUniformLocation(d,"enableLighting");d.ambientLightColor=c.getUniformLocation(d,"ambientLightColor");if(e){d.directionalLightNumber=c.getUniformLocation(d,"directionalLightNumber");d.directionalLightColor=c.getUniformLocation(d,"directionalLightColor");d.directionalLightDirection=c.getUniformLocation(d,"directionalLightDirection")}if(g){d.pointLightNumber= -c.getUniformLocation(d,"pointLightNumber");d.pointLightColor=c.getUniformLocation(d,"pointLightColor");d.pointLightPosition=c.getUniformLocation(d,"pointLightPosition")}d.material=c.getUniformLocation(d,"material");d.mColor=c.getUniformLocation(d,"mColor");d.mOpacity=c.getUniformLocation(d,"mOpacity");d.mAmbient=c.getUniformLocation(d,"mAmbient");d.mSpecular=c.getUniformLocation(d,"mSpecular");d.mShininess=c.getUniformLocation(d,"mShininess");d.enableMap=c.getUniformLocation(d,"enableMap");c.uniform1i(d.enableMap, -0);d.tMap=c.getUniformLocation(d,"tMap");c.uniform1i(d.tMap,0);d.m2Near=c.getUniformLocation(d,"m2Near");d.mFarPlusNear=c.getUniformLocation(d,"mFarPlusNear");d.mFarMinusNear=c.getUniformLocation(d,"mFarMinusNear");d.position=c.getAttribLocation(d,"position");c.enableVertexAttribArray(d.position);d.normal=c.getAttribLocation(d,"normal");c.enableVertexAttribArray(d.normal);d.uv=c.getAttribLocation(d,"uv");c.enableVertexAttribArray(d.uv);d.viewMatrixArray=new Float32Array(16);d.modelViewMatrixArray= -new Float32Array(16);d.projectionMatrixArray=new Float32Array(16)})(a.directional,a.point);this.setSize=function(e,g){f.width=e;f.height=g;c.viewport(0,0,f.width,f.height)};this.clear=function(){c.clear(c.COLOR_BUFFER_BIT|c.DEPTH_BUFFER_BIT)};this.setupLights=function(e){var g,l,i,m,r=[],n=[],p=[];m=[];var x=[];c.uniform1i(d.enableLighting,e.lights.length);g=0;for(l=e.lights.length;g + + + three.js - cube map WebGL + + + + + +
+

Three.js cube mapping demo + +

Walt Disney head by David OReilly +

Texture by Humus +

+ +

+
+		 
+		
+		
+		
+		
+
+		
+
+		
+
+	
+
diff --git a/examples/materials_gl.html b/examples/materials_gl.html
index 22bf0a2a..40208f21 100644
--- a/examples/materials_gl.html
+++ b/examples/materials_gl.html
@@ -68,7 +68,7 @@
 				var geometry1 = new Sphere( 70, 32, 16, true );
 
 				var generatedTexture = new THREE.Texture( generateTexture() );
-				generatedTexture.loaded = 1;
+				generatedTexture.image.loaded = 1;
 
 				var materials = [];
 				materials.push( { material: new THREE.MeshLambertMaterial( { color: 0xdddddd, shading: THREE.FlatShading } ), overdraw: true, doubleSided: false } );
diff --git a/examples/materials_multimaterials.html b/examples/materials_multimaterials.html
index 5071c660..c19be352 100644
--- a/examples/materials_multimaterials.html
+++ b/examples/materials_multimaterials.html
@@ -209,10 +209,10 @@
 				}
 
 				var xm1 = new THREE.MeshLambertMaterial( { map: new THREE.Texture( x1 ) } );
-				xm1.map.loaded = 1; // this is procedurally generated texture
+				xm1.map.image.loaded = 1; // this is procedurally generated texture
 
 				var xm2 = new THREE.MeshLambertMaterial( { map: new THREE.Texture( x2 ) } );
-				xm2.map.loaded = 1; // this is procedurally generated texture
+				xm2.map.image.loaded = 1; // this is procedurally generated texture
 				
 				geometry.materials[0].push ( xm1 ); // goes to faces with material 0
 				geometry.materials[1].push ( xm2 ); // goes to faces with material 1
@@ -267,7 +267,7 @@
 					xc.fillText(i, 10, 64);
 					
 					var xm = new THREE.MeshBasicMaterial( { map: new THREE.Texture( x ) } );
-					xm.map.loaded = 1;
+					xm.map.image.loaded = 1;
 					
 					mesh = new THREE.Mesh( new Plane( size, size ), xm );
 					mesh.position.x = i * (size + 5) - ( ( materials.length - 1 )* ( size + 5 )/2);
diff --git a/examples/obj_convert_test.html b/examples/obj_convert_test.html
index 3cab8965..d61ce465 100644
--- a/examples/obj_convert_test.html
+++ b/examples/obj_convert_test.html
@@ -118,7 +118,7 @@
 				xc.fillRect(96, 96, 32, 32);
 				
 				var xm = new THREE.MeshBasicMaterial( { map: new THREE.Texture( x ) } );
-				xm.map.loaded = 1;
+				xm.map.image.loaded = 1;
 				
 				geometry = new Plane( 100, 100, 15, 10 );
 				for(var i=0; i6Wh9Zzq&u}-@B^!
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

literal 0
HcmV?d00001

diff --git a/examples/textures/cube/SwedishRoyalCastle/ny.jpg b/examples/textures/cube/SwedishRoyalCastle/ny.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..30a7e82e709b41da5e8c28d34a613f12869e0a21
GIT binary patch
literal 26281
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

j4f(qZTAe_Q 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%0A+_LG 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 u018FuLG=7-oo?nabd3ram~uht4KoDhHb+?@mJi literal 0 HcmV?d00001 diff --git a/examples/textures/cube/SwedishRoyalCastle/px.jpg b/examples/textures/cube/SwedishRoyalCastle/px.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7b58481146d960c2e44d0a8531dc5a3fa7109277 GIT binary patch literal 43656 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 MrIg)}`QNMm1CvwMoB#j- literal 0 HcmV?d00001 diff --git a/examples/textures/cube/SwedishRoyalCastle/py.jpg b/examples/textures/cube/SwedishRoyalCastle/py.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9a285e81699a9c21b7354a3cb330b54338728e0e GIT binary patch literal 6204 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, * map: new THREE.Texture( ), + * env_map: new THREE.TextureCube( [posx, negx, posy, negy, posz, negz] ), + * reflectivity: , * opacity: , * blending: THREE.NormalBlending, * wireframe: , @@ -18,6 +20,8 @@ THREE.MeshBasicMaterial = function ( parameters ) { this.color = new THREE.Color( 0xeeeeee ); this.map = null; + this.env_map = null; + this.reflectivity = 1; this.opacity = 1; this.blending = THREE.NormalBlending; this.wireframe = false; @@ -27,6 +31,8 @@ THREE.MeshBasicMaterial = function ( parameters ) { if ( parameters.color !== undefined ) this.color.setHex( parameters.color ); if ( parameters.map !== undefined ) this.map = parameters.map; + if ( parameters.env_map !== undefined ) this.env_map = parameters.env_map; + if ( parameters.reflectivity !== undefined ) this.reflectivity = parameters.reflectivity; if ( parameters.opacity !== undefined ) this.opacity = parameters.opacity; if ( parameters.blending !== undefined ) this.blending = parameters.blending; if ( parameters.wireframe !== undefined ) this.wireframe = parameters.wireframe; @@ -40,6 +46,8 @@ THREE.MeshBasicMaterial = function ( parameters ) { 'id: ' + this.id + '
' + 'color: ' + this.color + '
' + 'map: ' + this.map + '
' + + 'env_map: ' + this.env_map + '
' + + 'reflectivity: ' + this.reflectivity + '
' + 'opacity: ' + this.opacity + '
' + 'blending: ' + this.blending + '
' + 'wireframe: ' + this.wireframe + '
' + diff --git a/src/materials/MeshLambertMaterial.js b/src/materials/MeshLambertMaterial.js index f9705ac4..9b2933b6 100644 --- a/src/materials/MeshLambertMaterial.js +++ b/src/materials/MeshLambertMaterial.js @@ -4,7 +4,9 @@ * * parameters = { * color: , - * map: new THREE.UVMap( ), + * map: new THREE.Texture( ), + * env_map: new THREE.TextureCube( [posx, negx, posy, negy, posz, negz] ), + * reflectivity: , * opacity: , * shading: THREE.SmoothShading, * blending: THREE.NormalBlending, @@ -19,6 +21,8 @@ THREE.MeshLambertMaterial = function ( parameters ) { this.color = new THREE.Color( 0xeeeeee ); this.map = null; + this.env_map = null; + this.reflectivity = 1; this.opacity = 1; this.shading = THREE.SmoothShading; this.blending = THREE.NormalBlending; @@ -29,6 +33,8 @@ THREE.MeshLambertMaterial = function ( parameters ) { if ( parameters.color !== undefined ) this.color.setHex( parameters.color ); if ( parameters.map !== undefined ) this.map = parameters.map; + if ( parameters.env_map !== undefined ) this.env_map = parameters.env_map; + if ( parameters.reflectivity !== undefined ) this.reflectivity = parameters.reflectivity; if ( parameters.opacity !== undefined ) this.opacity = parameters.opacity; if ( parameters.shading !== undefined ) this.shading = parameters.shading; if ( parameters.blending !== undefined ) this.blending = parameters.blending; @@ -43,6 +49,8 @@ THREE.MeshLambertMaterial = function ( parameters ) { 'id: ' + this.id + '
' + 'color: ' + this.color + '
' + 'map: ' + this.map + '
' + + 'env_map: ' + this.env_map + '
' + + 'reflectivity: ' + this.reflectivity + '
' + 'opacity: ' + this.opacity + '
' + 'shading: ' + this.shading + '
' + 'blending: ' + this.blending + '
' + diff --git a/src/materials/MeshPhongMaterial.js b/src/materials/MeshPhongMaterial.js index c6b3adeb..9deece1f 100644 --- a/src/materials/MeshPhongMaterial.js +++ b/src/materials/MeshPhongMaterial.js @@ -6,12 +6,14 @@ * ambient: , * color: , * specular: , - * map: new THREE.UVMap( ), - * specular_map: new THREE.UVMap( ), + * map: new THREE.Texture( ), + * specular_map: new THREE.Texture( ), + * env_map: new THREE.TextureCube( [posx, negx, posy, negy, posz, negz] ), * shininess: , + * reflectivity: , * opacity: , * shading: THREE.SmoothShading, - * blending: THREE.AdditiveBlending, + * blending: THREE.NormalBlending, * wireframe: , * wireframe_linewidth: * } @@ -26,7 +28,9 @@ THREE.MeshPhongMaterial = function ( parameters ) { this.ambient = new THREE.Color( 0x050505 ); this.specular = new THREE.Color( 0x111111 ); this.specular_map = null; + this.env_map = null; this.shininess = 30; + this.reflectivity = 1; this.opacity = 1; this.shading = THREE.SmoothShading; this.blending = THREE.NormalBlending; @@ -40,7 +44,9 @@ THREE.MeshPhongMaterial = function ( parameters ) { if ( parameters.ambient !== undefined ) this.ambient = new THREE.Color( parameters.ambient ); if ( parameters.specular !== undefined ) this.specular = new THREE.Color( parameters.specular ); if ( parameters.specular_map !== undefined ) this.specular_map = parameters.specular_map; + if ( parameters.env_map !== undefined ) this.env_map = parameters.env_map; if ( parameters.shininess !== undefined ) this.shininess = parameters.shininess; + if ( parameters.reflectivity !== undefined ) this.reflectivity = parameters.reflectivity; if ( parameters.opacity !== undefined ) this.opacity = parameters.opacity; if ( parameters.shading !== undefined ) this.shading = parameters.shading; if ( parameters.blending !== undefined ) this.blending = parameters.blending; @@ -55,11 +61,13 @@ THREE.MeshPhongMaterial = function ( parameters ) { 'id: ' + this.id + '
' + 'color: ' + this.color + '
' + 'map: ' + this.map + '
' + + 'env_map: ' + this.env_map + '
' + 'ambient: ' + this.ambient + '
' + 'specular: ' + this.specular + '
' + 'specular_map: ' + this.specular_map + '
' + 'shininess: ' + this.shininess + '
' + - 'alpha: ' + this.opacity + '
' + + 'reflectivity: ' + this.reflectivity + '
' + + 'opacity: ' + this.opacity + '
' + 'shading: ' + this.shading + '
' + 'wireframe: ' + this.wireframe + '
' + 'wireframe_linewidth: ' + this.wireframe_linewidth + '
' + diff --git a/src/materials/textures/Texture.js b/src/materials/textures/Texture.js index 6a523e13..728c1029 100644 --- a/src/materials/textures/Texture.js +++ b/src/materials/textures/Texture.js @@ -21,4 +21,4 @@ THREE.Texture = function ( image, mapping ) { THREE.UVMapping = 0; THREE.ReflectionMap = 1; -THREE.CubeMap = 2; +THREE.RefractionMap = 2; diff --git a/src/materials/textures/TextureCube.js b/src/materials/textures/TextureCube.js new file mode 100644 index 00000000..d0297492 --- /dev/null +++ b/src/materials/textures/TextureCube.js @@ -0,0 +1,21 @@ +/** + * @author mr.doob / http://mrdoob.com/ + * @author alteredq / http://alteredqualia.com/ + * } + */ + +THREE.TextureCube = function ( image, mapping ) { + + this.image = image; + this.mapping = mapping ? mapping : THREE.ReflectionMap; + + this.toString = function () { + + return 'THREE.TextureCube (
' + + 'image: ' + this.image + '
' + + 'mapping: ' + this.mapping + '
' + + ')'; + + }; + +}; diff --git a/src/renderers/WebGLRenderer.js b/src/renderers/WebGLRenderer.js index bdfda55f..edc7afcd 100644 --- a/src/renderers/WebGLRenderer.js +++ b/src/renderers/WebGLRenderer.js @@ -379,9 +379,10 @@ THREE.WebGLRenderer = function ( scene ) { this.renderBuffer = function ( material, materialFaceGroup ) { - var mColor, mOpacity, mWireframe, mLineWidth, mBlending, + var mColor, mOpacity, mReflectivity, + mWireframe, mLineWidth, mBlending, mAmbient, mSpecular, mShininess, - mMap; + mMap, envMap; if ( material instanceof THREE.MeshPhongMaterial || material instanceof THREE.MeshLambertMaterial || @@ -389,6 +390,7 @@ THREE.WebGLRenderer = function ( scene ) { mColor = material.color; mOpacity = material.opacity; + mReflectivity = material.reflectivity; mWireframe = material.wireframe; mLineWidth = material.wireframe_linewidth; @@ -396,9 +398,10 @@ THREE.WebGLRenderer = function ( scene ) { mBlending = material.blending; mMap = material.map; + envMap = material.env_map; _gl.uniform4f( _program.mColor, mColor.r * mOpacity, mColor.g * mOpacity, mColor.b * mOpacity, mOpacity ); - + _gl.uniform1f( _program.mReflectivity, mReflectivity ); } if ( material instanceof THREE.MeshNormalMaterial ) { @@ -449,7 +452,7 @@ THREE.WebGLRenderer = function ( scene ) { if ( mMap ) { - if ( !material.__webGLTexture && material.map.loaded ) { + if ( !material.__webGLTexture && material.map.image.loaded ) { material.__webGLTexture = _gl.createTexture(); _gl.bindTexture( _gl.TEXTURE_2D, material.__webGLTexture ); @@ -473,6 +476,53 @@ THREE.WebGLRenderer = function ( scene ) { } + if ( envMap ) { + + if ( material.env_map && + material.env_map instanceof THREE.TextureCube && + material.env_map.image.length == 6 ) { + + if ( !material.__webGLTextureCube && !material.__cubeMapInitialized && material.env_map.image.loadCount == 6 ) { + + material.__webGLTextureCube = _gl.createTexture(); + + _gl.bindTexture( _gl.TEXTURE_CUBE_MAP, material.__webGLTextureCube ); + + _gl.texParameteri( _gl.TEXTURE_CUBE_MAP, _gl.TEXTURE_WRAP_S, _gl.CLAMP_TO_EDGE ); + _gl.texParameteri( _gl.TEXTURE_CUBE_MAP, _gl.TEXTURE_WRAP_T, _gl.CLAMP_TO_EDGE ); + + _gl.texParameteri( _gl.TEXTURE_CUBE_MAP, _gl.TEXTURE_MAG_FILTER, _gl.LINEAR ); + _gl.texParameteri( _gl.TEXTURE_CUBE_MAP, _gl.TEXTURE_MIN_FILTER, _gl.LINEAR_MIPMAP_LINEAR ); + + _gl.texImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X, 0, _gl.RGBA, _gl.RGBA, _gl.UNSIGNED_BYTE, material.env_map.image[0] ); + _gl.texImage2D( _gl.TEXTURE_CUBE_MAP_NEGATIVE_X, 0, _gl.RGBA, _gl.RGBA, _gl.UNSIGNED_BYTE, material.env_map.image[1] ); + _gl.texImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_Y, 0, _gl.RGBA, _gl.RGBA, _gl.UNSIGNED_BYTE, material.env_map.image[2] ); + _gl.texImage2D( _gl.TEXTURE_CUBE_MAP_NEGATIVE_Y, 0, _gl.RGBA, _gl.RGBA, _gl.UNSIGNED_BYTE, material.env_map.image[3] ); + _gl.texImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_Z, 0, _gl.RGBA, _gl.RGBA, _gl.UNSIGNED_BYTE, material.env_map.image[4] ); + _gl.texImage2D( _gl.TEXTURE_CUBE_MAP_NEGATIVE_Z, 0, _gl.RGBA, _gl.RGBA, _gl.UNSIGNED_BYTE, material.env_map.image[5] ); + + _gl.generateMipmap( _gl.TEXTURE_CUBE_MAP ); + + _gl.bindTexture( _gl.TEXTURE_CUBE_MAP, null ); + + material.__cubeMapInitialized = true; + + } + + _gl.activeTexture( _gl.TEXTURE1 ); + _gl.bindTexture( _gl.TEXTURE_CUBE_MAP, material.__webGLTextureCube ); + _gl.uniform1i( _program.tCube, 1 ); + + } + + _gl.uniform1i( _program.enableCubeMap, 1 ); + + } else { + + _gl.uniform1i( _program.enableCubeMap, 0 ); + + } + // vertices _gl.bindBuffer( _gl.ARRAY_BUFFER, materialFaceGroup.__webGLVertexBuffer ); @@ -773,7 +823,11 @@ THREE.WebGLRenderer = function ( scene ) { "uniform int material;", // 0 - Basic, 1 - Lambert, 2 - Phong, 3 - Depth, 4 - Normal "uniform bool enableMap;", + "uniform bool enableCubeMap;", + "uniform samplerCube tCube;", + "uniform float mReflectivity;", + "uniform sampler2D tMap;", "uniform vec4 mColor;", "uniform float mOpacity;", @@ -801,16 +855,29 @@ THREE.WebGLRenderer = function ( scene ) { "varying vec3 vViewPosition;", + "varying vec3 vReflect;", + "void main() {", "vec4 mapColor = vec4( 1.0, 1.0, 1.0, 1.0 );", + "vec4 cubeColor = vec4( 1.0, 1.0, 1.0, 1.0 );", + // diffuse map + "if ( enableMap ) {", "mapColor = texture2D( tMap, vUv );", "}", + // cube map + + "if ( enableCubeMap ) {", + + "cubeColor = mReflectivity * textureCube( tCube, vReflect );", + + "}", + // Normals "if ( material == 4 ) { ", @@ -903,19 +970,19 @@ THREE.WebGLRenderer = function ( scene ) { // looks nicer with weighting - "gl_FragColor = vec4( mapColor.rgb * totalLight.xyz * vLightWeighting, mapColor.a );", + "gl_FragColor = vec4( mapColor.rgb * cubeColor.rgb * totalLight.xyz * vLightWeighting, mapColor.a );", // Lambert: diffuse lighting "} else if ( material == 1 ) {", - "gl_FragColor = vec4( mColor.rgb * mapColor.rgb * vLightWeighting, mColor.a * mapColor.a );", + "gl_FragColor = vec4( mColor.rgb * mapColor.rgb * cubeColor.rgb * vLightWeighting, mColor.a * mapColor.a );", // Basic: unlit color / texture "} else {", - "gl_FragColor = mColor * mapColor;", + "gl_FragColor = mColor * mapColor * cubeColor;", "}", @@ -966,7 +1033,7 @@ THREE.WebGLRenderer = function ( scene ) { "varying vec3 vViewPosition;", - "varying vec3 vFragPosition;", + "varying vec3 vReflect;", "void main(void) {", @@ -975,6 +1042,8 @@ THREE.WebGLRenderer = function ( scene ) { "vec4 mPosition = objMatrix * vec4( position, 1.0 );", "vViewPosition = cameraPosition - mPosition.xyz;", + "vec3 nWorld = mat3(objMatrix) * normal;", + // eye space "vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );", @@ -1010,6 +1079,8 @@ THREE.WebGLRenderer = function ( scene ) { "vNormal = transformedNormal;", "vUv = uv;", + "vReflect = reflect( normalize(mPosition.xyz - cameraPosition), normalize(nWorld.xyz) );", + "gl_Position = projectionMatrix * mvPosition;", "}" ]; @@ -1081,6 +1152,7 @@ THREE.WebGLRenderer = function ( scene ) { _program.mColor = _gl.getUniformLocation( _program, 'mColor' ); _program.mOpacity = _gl.getUniformLocation( _program, 'mOpacity' ); + _program.mReflectivity = _gl.getUniformLocation( _program, 'mReflectivity' ); // material properties (Blinn-Phong shader) @@ -1096,6 +1168,14 @@ THREE.WebGLRenderer = function ( scene ) { _program.tMap = _gl.getUniformLocation( _program, "tMap" ); _gl.uniform1i( _program.tMap, 0 ); + // cube texture + + _program.enableCubeMap = _gl.getUniformLocation( _program, "enableCubeMap" ); + _gl.uniform1i( _program.enableCubeMap, 0 ); + + _program.tCube = _gl.getUniformLocation( _program, "tCube" ); + _gl.uniform1i( _program.tCube, 1 ); // it's important to use non-zero texture unit, otherwise it doesn't work + // material properties (Depth) _program.m2Near = _gl.getUniformLocation( _program, 'm2Near' ); diff --git a/utils/build.py b/utils/build.py index 4c1424b5..c0d4960c 100644 --- a/utils/build.py +++ b/utils/build.py @@ -120,6 +120,7 @@ def buildFull(debug): 'materials/ParticleCircleMaterial.js', 'materials/ParticleDOMMaterial.js', 'materials/textures/Texture.js', + 'materials/textures/TextureCube.js', 'scenes/Scene.js', 'renderers/Projector.js', 'renderers/DOMRenderer.js', @@ -221,6 +222,7 @@ def buildWebGL(debug): 'materials/ParticleBasicMaterial.js', 'materials/ParticleCircleMaterial.js', 'materials/textures/Texture.js', + 'materials/textures/TextureCube.js', 'scenes/Scene.js', 'renderers/WebGLRenderer.js', ]