var Universe={};(function(){var b,g,s,p,i;var a,r,o,f;var q=20;var n=new Array(16);var m=[0,0,0];var e=[0,0,0];var d=[0,0,0];var c=[0,0,0];Universe.init=function(l,v,u,t,h){g=v;s=u;p=t;i=h;b=l;r=p/2;o=i/2;f=Math.max(p,i)/15;a=b.getContext("2d");a.lineJoin="bevel"};Universe.adjustCamera=function(l,h,t){r+=l;o+=h;f*=t};Universe.setIsometricCorrection=function(h){q=h};Universe.reset=function(){n=M4x4.clone(M4x4.identity)};Universe.rotate=function(l,h){n=M4x4.rotate(l,h,n)};Universe.clear=function(){a.clearRect(g,s,p,i)};Universe.getContext=function(){return a};Universe.drawSurface=function(t,u,y,h){if(!h){var w=V3.sub(t[0],t[1],m);var v=V3.sub(t[2],t[1],e);var x=V3.normalize(V3.cross(w,v,d),c);if(x[2]<0){return}}a.lineWidth=1.2;a.beginPath();a.moveTo(t[0][0],t[0][1]);for(var l=0;l<t.length;l++){a.lineTo(t[l][0],t[l][1])}a.closePath();if(y!=undefined){a.fillStyle=y;a.fill()}if(u!=undefined){a.strokeStyle=u;a.stroke()}};Universe.projectToPlane=function(l,h){if(h==undefined){h=[0,0,0]}k(l,m);j(m,h);return h};Universe.projectScaleFactor=function(h){var l=h+q;return 1/l*q*f};function k(l,h){var t=V3.mul4x4(n,l,h);return t}function j(l,h){if(h==undefined){h=[0,0,0]}var t=l[2]+q;r1=l[0]/t*q*f+r+g;r2=-l[1]/t*q*f+o+s;r3=l[2];h[0]=r1;h[1]=r2;h[2]=r3;return h}})();
