THREE.Matrix4.makeInvert3x3=function(a){varc=a.flatten();a=newTHREE.Matrix3;varf=c[10]*c[5]-c[6]*c[9],h=-c[10]*c[1]+c[2]*c[9],b=c[6]*c[1]-c[2]*c[5],d=-c[10]*c[4]+c[6]*c[8],o=c[10]*c[0]-c[2]*c[8],s=-c[6]*c[0]+c[2]*c[4],n=c[9]*c[4]-c[5]*c[8],e=-c[9]*c[0]+c[1]*c[8],g=c[5]*c[0]-c[1]*c[4];c=c[0]*f+c[1]*d+c[2]*n;if(c==0)throw"matrix not invertible";c=1/c;a.m[0]=c*f;a.m[1]=c*h;a.m[2]=c*b;a.m[3]=c*d;a.m[4]=c*o;a.m[5]=c*s;a.m[6]=c*n;a.m[7]=c*e;a.m[8]=c*g;returna};
""+C.positionScreen.y+" L "+X.positionScreen.x+""+X.positionScreen.y+" L "+O.positionScreen.x+","+O.positionScreen.y+"z");if(yinstanceofTHREE.MeshBasicMaterial)r.__styleString=y.color.__styleString;elseif(yinstanceofTHREE.MeshLambertMaterial)if(L){q.r=l.r;q.g=l.g;q.b=l.b;a(v,S,q);r.r=y.color.r*q.r;r.g=y.color.g*q.g;r.b=y.color.b*q.b;r.updateStyleString()}elser.__styleString=y.color.__styleString;elseif(yinstanceofTHREE.MeshDepthMaterial){T=1-y.__2near/(y.__farPlusNear-S.z*y.__farMinusNear);
""+C.positionScreen.y+" L "+X.positionScreen.x+""+X.positionScreen.y+" L "+O.positionScreen.x+","+O.positionScreen.y+" L "+S.positionScreen.x+","+S.positionScreen.y+"z");linecap=linejoin="round";if(vinstanceofTHREE.MeshBasicMaterial)r.__styleString=v.color.__styleString;elseif(vinstanceofTHREE.MeshLambertMaterial)if(L){q.r=l.r;q.g=l.g;q.b=l.b;a(P,y,q);r.r=v.color.r*q.r;r.g=v.color.g*q.g;r.b=v.color.b*q.b;r.updateStyleString()}elser.__styleString=v.color.__styleString;elseif(vinstanceofTHREE.MeshDepthMaterial){T=
b.linkProgram(d);if(!b.getProgramParameter(d,b.LINK_STATUS)){alert("Could not initialise shaders");alert("VALIDATE_STATUS: "+b.getProgramParameter(d,b.VALIDATE_STATUS));alert(b.getError())}b.useProgram(d);d.viewMatrix=b.getUniformLocation(d,"viewMatrix");d.modelViewMatrix=b.getUniformLocation(d,"modelViewMatrix");d.projectionMatrix=b.getUniformLocation(d,"projectionMatrix");d.normalMatrix=b.getUniformLocation(d,"normalMatrix");d.objMatrix=b.getUniformLocation(d,"objMatrix");d.cameraPosition=b.getUniformLocation(d,
THREE.Matrix4.makeInvert3x3=function(a){varc=a.flatten();a=newTHREE.Matrix3;varf=c[10]*c[5]-c[6]*c[9],h=-c[10]*c[1]+c[2]*c[9],b=c[6]*c[1]-c[2]*c[5],d=-c[10]*c[4]+c[6]*c[8],o=c[10]*c[0]-c[2]*c[8],s=-c[6]*c[0]+c[2]*c[4],n=c[9]*c[4]-c[5]*c[8],e=-c[9]*c[0]+c[1]*c[8],g=c[5]*c[0]-c[1]*c[4];c=c[0]*f+c[1]*d+c[2]*n;if(c==0)throw"matrix not invertible";c=1/c;a.m[0]=c*f;a.m[1]=c*h;a.m[2]=c*b;a.m[3]=c*d;a.m[4]=c*o;a.m[5]=c*s;a.m[6]=c*n;a.m[7]=c*e;a.m[8]=c*g;returna};
""+C.positionScreen.y+" L "+X.positionScreen.x+""+X.positionScreen.y+" L "+O.positionScreen.x+","+O.positionScreen.y+"z");if(yinstanceofTHREE.MeshBasicMaterial)r.__styleString=y.color.__styleString;elseif(yinstanceofTHREE.MeshLambertMaterial)if(L){q.r=l.r;q.g=l.g;q.b=l.b;a(v,S,q);r.r=y.color.r*q.r;r.g=y.color.g*q.g;r.b=y.color.b*q.b;r.updateStyleString()}elser.__styleString=y.color.__styleString;elseif(yinstanceofTHREE.MeshDepthMaterial){T=1-y.__2near/(y.__farPlusNear-S.z*y.__farMinusNear);
""+C.positionScreen.y+" L "+X.positionScreen.x+""+X.positionScreen.y+" L "+O.positionScreen.x+","+O.positionScreen.y+" L "+S.positionScreen.x+","+S.positionScreen.y+"z");linecap=linejoin="round";if(vinstanceofTHREE.MeshBasicMaterial)r.__styleString=v.color.__styleString;elseif(vinstanceofTHREE.MeshLambertMaterial)if(L){q.r=l.r;q.g=l.g;q.b=l.b;a(P,y,q);r.r=v.color.r*q.r;r.g=v.color.g*q.g;r.b=v.color.b*q.b;r.updateStyleString()}elser.__styleString=v.color.__styleString;elseif(vinstanceofTHREE.MeshDepthMaterial){T=
b.linkProgram(d);if(!b.getProgramParameter(d,b.LINK_STATUS)){alert("Could not initialise shaders");alert("VALIDATE_STATUS: "+b.getProgramParameter(d,b.VALIDATE_STATUS));alert(b.getError())}b.useProgram(d);d.viewMatrix=b.getUniformLocation(d,"viewMatrix");d.modelViewMatrix=b.getUniformLocation(d,"modelViewMatrix");d.projectionMatrix=b.getUniformLocation(d,"projectionMatrix");d.normalMatrix=b.getUniformLocation(d,"normalMatrix");d.objMatrix=b.getUniformLocation(d,"objMatrix");d.cameraPosition=b.getUniformLocation(d,
THREE.Matrix4.makeInvert3x3=function(a){varc=a.flatten();a=newTHREE.Matrix3;varf=c[10]*c[5]-c[6]*c[9],h=-c[10]*c[1]+c[2]*c[9],b=c[6]*c[1]-c[2]*c[5],d=-c[10]*c[4]+c[6]*c[8],o=c[10]*c[0]-c[2]*c[8],s=-c[6]*c[0]+c[2]*c[4],n=c[9]*c[4]-c[5]*c[8],e=-c[9]*c[0]+c[1]*c[8],g=c[5]*c[0]-c[1]*c[4];c=c[0]*f+c[1]*d+c[2]*n;if(c==0)throw"matrix not invertible";c=1/c;a.m[0]=c*f;a.m[1]=c*h;a.m[2]=c*b;a.m[3]=c*d;a.m[4]=c*o;a.m[5]=c*s;a.m[6]=c*n;a.m[7]=c*e;a.m[8]=c*g;returna};
""+C.positionScreen.y+" L "+X.positionScreen.x+""+X.positionScreen.y+" L "+O.positionScreen.x+","+O.positionScreen.y+"z");if(zinstanceofTHREE.MeshBasicMaterial)r.__styleString=z.color.__styleString;elseif(zinstanceofTHREE.MeshLambertMaterial)if(L){q.r=k.r;q.g=k.g;q.b=k.b;a(w,S,q);r.r=z.color.r*q.r;r.g=z.color.g*q.g;r.b=z.color.b*q.b;r.updateStyleString()}elser.__styleString=z.color.__styleString;elseif(zinstanceofTHREE.MeshDepthMaterial){T=1-z.__2near/(z.__farPlusNear-S.z*z.__farMinusNear);
""+C.positionScreen.y+" L "+X.positionScreen.x+""+X.positionScreen.y+" L "+O.positionScreen.x+","+O.positionScreen.y+" L "+S.positionScreen.x+","+S.positionScreen.y+"z");linecap=linejoin="round";if(winstanceofTHREE.MeshBasicMaterial)r.__styleString=w.color.__styleString;elseif(winstanceofTHREE.MeshLambertMaterial)if(L){q.r=k.r;q.g=k.g;q.b=k.b;a(P,z,q);r.r=w.color.r*q.r;r.g=w.color.g*q.g;r.b=w.color.b*q.b;r.updateStyleString()}elser.__styleString=w.color.__styleString;elseif(winstanceofTHREE.MeshDepthMaterial){T=
b.linkProgram(d);if(!b.getProgramParameter(d,b.LINK_STATUS)){alert("Could not initialise shaders");alert("VALIDATE_STATUS: "+b.getProgramParameter(d,b.VALIDATE_STATUS));alert(b.getError())}b.useProgram(d);d.viewMatrix=b.getUniformLocation(d,"viewMatrix");d.modelViewMatrix=b.getUniformLocation(d,"modelViewMatrix");d.projectionMatrix=b.getUniformLocation(d,"projectionMatrix");d.normalMatrix=b.getUniformLocation(d,"normalMatrix");d.objMatrix=b.getUniformLocation(d,"objMatrix");d.cameraPosition=b.getUniformLocation(d,
THREE.Matrix4.makeInvert3x3=function(a){varc=a.flatten();a=newTHREE.Matrix3;varf=c[10]*c[5]-c[6]*c[9],h=-c[10]*c[1]+c[2]*c[9],b=c[6]*c[1]-c[2]*c[5],d=-c[10]*c[4]+c[6]*c[8],o=c[10]*c[0]-c[2]*c[8],s=-c[6]*c[0]+c[2]*c[4],n=c[9]*c[4]-c[5]*c[8],e=-c[9]*c[0]+c[1]*c[8],g=c[5]*c[0]-c[1]*c[4];c=c[0]*f+c[1]*d+c[2]*n;if(c==0)throw"matrix not invertible";c=1/c;a.m[0]=c*f;a.m[1]=c*h;a.m[2]=c*b;a.m[3]=c*d;a.m[4]=c*o;a.m[5]=c*s;a.m[6]=c*n;a.m[7]=c*e;a.m[8]=c*g;returna};
""+C.positionScreen.y+" L "+X.positionScreen.x+""+X.positionScreen.y+" L "+O.positionScreen.x+","+O.positionScreen.y+"z");if(zinstanceofTHREE.MeshBasicMaterial)r.__styleString=z.color.__styleString;elseif(zinstanceofTHREE.MeshLambertMaterial)if(L){q.r=k.r;q.g=k.g;q.b=k.b;a(w,S,q);r.r=z.color.r*q.r;r.g=z.color.g*q.g;r.b=z.color.b*q.b;r.updateStyleString()}elser.__styleString=z.color.__styleString;elseif(zinstanceofTHREE.MeshDepthMaterial){T=1-z.__2near/(z.__farPlusNear-S.z*z.__farMinusNear);
""+C.positionScreen.y+" L "+X.positionScreen.x+""+X.positionScreen.y+" L "+O.positionScreen.x+","+O.positionScreen.y+" L "+S.positionScreen.x+","+S.positionScreen.y+"z");linecap=linejoin="round";if(winstanceofTHREE.MeshBasicMaterial)r.__styleString=w.color.__styleString;elseif(winstanceofTHREE.MeshLambertMaterial)if(L){q.r=k.r;q.g=k.g;q.b=k.b;a(P,z,q);r.r=w.color.r*q.r;r.g=w.color.g*q.g;r.b=w.color.b*q.b;r.updateStyleString()}elser.__styleString=w.color.__styleString;elseif(winstanceofTHREE.MeshDepthMaterial){T=
b.linkProgram(d);if(!b.getProgramParameter(d,b.LINK_STATUS)){alert("Could not initialise shaders");alert("VALIDATE_STATUS: "+b.getProgramParameter(d,b.VALIDATE_STATUS));alert(b.getError())}b.useProgram(d);d.viewMatrix=b.getUniformLocation(d,"viewMatrix");d.modelViewMatrix=b.getUniformLocation(d,"modelViewMatrix");d.projectionMatrix=b.getUniformLocation(d,"projectionMatrix");d.normalMatrix=b.getUniformLocation(d,"normalMatrix");d.objMatrix=b.getUniformLocation(d,"objMatrix");d.cameraPosition=b.getUniformLocation(d,