function startCube(){var j=(screen.width<640);var e=document.getElementById("canvas");if(j){e.width=300;e.height=200}Universe.init(e,0,0,e.width,e.height);var p=0;var l=1.3;var d=new Date().getTime();var a=[];for(var g=0;g<10;g++){a.push(new h([Math.random()*4-2,Math.random()*4-2,-Math.random()*5-5],[Math.random()*4-2,Math.random()*4-2,2]))}var k=new f();var n=0;var c=function(){m();Universe.clear();Universe.reset();Universe.rotate(l,[1,0,0]);Universe.rotate(p,[0,0,1]);for(var q=0;q<a.length;q++){if(a[q].endOfLife()&&n<10){a[q]=new h([Math.random()*4-2,Math.random()*4-2,-Math.random()*2-8],[Math.random()*4-2,Math.random()*4-2,2])}a[q].calculate()}k.calculate();a.sort(function(r,i){var t=r.getZIndex();var s=i.getZIndex();return s-t});for(var q=0;q<a.length;q++){if(a[q].getPos()[2]>0){a[q].render()}}k.render();for(var q=0;q<a.length;q++){if(a[q].getPos()[2]<0){a[q].render()}}if(n<20){setTimeout(c,50)}};function m(){var q=new Date().getTime();var s=(q-d)/1000;d=q;n+=s;p+=0.4*s;if(p>Math.PI*2){p-=Math.PI*2}for(var r=0;r<a.length;r++){a[r].animate(s)}k.animate(s)}function f(){var u=new Array(10*10);var t=new Array(11*11);var r=new Array(11*11);for(var s=0;s<u.length;s++){u[s]=0}for(var q=0;q<=10;q++){for(var v=0;v<=10;v++){t[v*11+q]=[q-5,v-5,0]}}this.activate=function(i,w){u[w*10+i]=1};this.animate=function(x){for(var w=0;w<u.length;w++){u[w]=u[w]/(Math.pow(1.3,x))}};this.calculate=function(){for(var w=0;w<t.length;w++){r[w]=Universe.projectToPlane(t[w],r[w])}};this.render=function(){for(var i=0;i<10;i++){for(var A=0;A<10;A++){var w=u[A*10+i];if(w<0.001){continue}var z=[];z.push(r[A*11+i]);z.push(r[A*11+i+1]);z.push(r[(A+1)*11+i+1]);z.push(r[(A+1)*11+i]);c1=255-Math.floor(w*200);c2=255-Math.floor(w*150);c3=255-Math.floor(w*100);Universe.drawSurface(z,"#FFFFFF","rgb("+c1+", "+c2+", "+c3+")")}}}}var o=8;var b=[[1,-1,-1],[1,1,-1],[-1,1,-1],[-1,-1,-1],[1,-1,1],[1,1,1],[-1,1,1],[-1,-1,1]];function h(u,t){var w=u;var v=[0,0,0];var x=t;var y=Math.random()*2;var s=Math.random();var q=Math.random();var r=new Array(6);var i=[0,0,0];this.getPos=function(){return w};this.endOfLife=function(){return w[2]>5||(Math.abs(w[2])<0.1&&Math.abs(x[2])<1)};this.animate=function(z){y+=z;i[0]=w[0]+x[0]*z;i[1]=w[1]+x[1]*z;i[2]=w[2]+x[2]*z;if(i[2]>=0&&w[2]<0&&Math.abs(w[0])<5&&Math.abs(w[1])<5){k.activate(Math.floor(w[0]+5),Math.floor(w[1]+5));x[2]=-x[2]/2;i[2]=-i[2]}w[0]=i[0];w[1]=i[1];w[2]=i[2];x[2]+=o*z;s+=z*1.1;q+=z*1.3};this.calculate=function(){var A=M4x4.makeRotate(s,[1,0,0]);A=M4x4.rotate(q,[0,1,0],A);Universe.projectToPlane(w,v);for(var z=0;z<b.length;z++){r[z]=(V3.mul4x4(A,[b[z][0]/4,b[z][1]/4,b[z][2]/4],r[z]))}for(var z=0;z<r.length;z++){r[z]=Universe.projectToPlane([r[z][0]+w[0],r[z][1]+w[1],r[z][2]+w[2]],r[z])}};this.getZIndex=function(){return v[2]};this.render=function(){Universe.drawSurface([r[0],r[1],r[2],r[3]],"#004879","#FFFFFF");Universe.drawSurface([r[4],r[5],r[1],r[0]],"#004879","#FFFFFF");Universe.drawSurface([r[7],r[6],r[5],r[4]],"#004879","#FFFFFF");Universe.drawSurface([r[3],r[2],r[6],r[7]],"#004879","#FFFFFF");Universe.drawSurface([r[1],r[5],r[6],r[2]],"#004879","#FFFFFF");Universe.drawSurface([r[4],r[0],r[3],r[7]],"#004879","#FFFFFF")}}setTimeout(c,50)};
