From d2b8a078225db960bab1f07d78a44545e5397f75 Mon Sep 17 00:00:00 2001 From: "Mr.doob" Date: Sat, 15 Oct 2011 09:00:41 +0200 Subject: [PATCH] Changed ColladaLoader so it doesn't create extra Object3Ds for each mesh. Updated Stats. --- examples/js/Stats.js | 12 ++++++------ src/extras/loaders/ColladaLoader.js | 10 +++++----- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/examples/js/Stats.js b/examples/js/Stats.js index 5d89bffc..356b7ab5 100644 --- a/examples/js/Stats.js +++ b/examples/js/Stats.js @@ -1,10 +1,10 @@ -// stats.js r6 - http://github.com/mrdoob/stats.js -var Stats=function(){function s(a,g,d){var f,c,e;for(c=0;c<30;c++)for(f=0;f<73;f++)e=(f+c*74)*4,a[e]=a[e+4],a[e+1]=a[e+5],a[e+2]=a[e+6];for(c=0;c<30;c++)e=(73+c*74)*4,c'+n+" MS ("+z+"-"+A+")";o.putImageData(B,0,0);F=j;if(j> -v+1E3){l=Math.round(u*1E3/(j-v));w=Math.min(w,l);x=Math.max(x,l);s(y.data,Math.min(30,30-l/100*30),"fps");d.innerHTML=''+l+" FPS ("+w+"-"+x+")";m.putImageData(y,0,0);if(t==3)p=performance.memory.usedJSHeapSize*9.54E-7,C=Math.min(C,p),D=Math.max(D,p),s(E.data,Math.min(30,30-p/2),"mb"),i.innerHTML=''+Math.round(p)+" MB ("+Math.round(C)+"-"+Math.round(D)+")",q.putImageData(E,0,0);v=j;u=0}}}}; +h.appendChild(i);a=document.createElement("canvas");a.width=74;a.height=30;a.style.display="block";a.style.marginLeft="3px";h.appendChild(a);q=a.getContext("2d");q.fillStyle="#301010";q.fillRect(0,0,a.width,a.height);E=q.getImageData(0,0,a.width,a.height);return{domElement:g,update:function(){u++;j=Date.now();n=j-F;z=Math.min(z,n);A=Math.max(A,n);s(B.data,Math.min(30,30-n/200*30),"ms");c.innerHTML=''+n+" MS ("+z+"-"+A+")";o.putImageData(B,0,0);F=j;if(j>v+1E3){l= +Math.round(u*1E3/(j-v));w=Math.min(w,l);x=Math.max(x,l);s(y.data,Math.min(30,30-l/100*30),"fps");d.innerHTML=''+l+" FPS ("+w+"-"+x+")";m.putImageData(y,0,0);if(t==3)p=performance.memory.usedJSHeapSize*9.54E-7,C=Math.min(C,p),D=Math.max(D,p),s(E.data,Math.min(30,30-p/2),"mb"),i.innerHTML=''+Math.round(p)+" MB ("+Math.round(C)+"-"+Math.round(D)+")",q.putImageData(E,0,0);v=j;u=0}}}}; diff --git a/src/extras/loaders/ColladaLoader.js b/src/extras/loaders/ColladaLoader.js index 6d564595..b26544c2 100644 --- a/src/extras/loaders/ColladaLoader.js +++ b/src/extras/loaders/ColladaLoader.js @@ -517,10 +517,6 @@ THREE.ColladaLoader = function () { var morphController; var i; - obj.name = node.id || ""; - obj.matrixAutoUpdate = false; - obj.matrix = node.matrix; - // FIXME: controllers for ( i = 0; i < node.controllers.length; i ++ ) { @@ -676,15 +672,19 @@ THREE.ColladaLoader = function () { } else { mesh = new THREE.Mesh( geom, material ); + // mesh.geom.name = geometry.id; } - obj.add( mesh ); + node.geometries.length > 1 ? obj.add( mesh ) : obj = mesh; } } + obj.name = node.id || ""; + node.matrix.decompose( obj.position, obj.rotation, obj.scale ); + for ( i = 0; i < node.nodes.length; i ++ ) { obj.add( createSceneGraph( node.nodes[i], node ) );