Browse Source

MD2Loader: Clean up.

Mr.doob 10 years ago
parent
commit
4cd17df793
1 changed files with 12 additions and 13 deletions
  1. 12 13
      examples/js/loaders/MD2Loader.js

+ 12 - 13
examples/js/loaders/MD2Loader.js

@@ -121,6 +121,8 @@ THREE.MD2Loader.prototype = {
 
 
 		return function ( buffer ) {
 		return function ( buffer ) {
 
 
+			console.time( 'MD2Loader' );
+
 			var data = new DataView( buffer );
 			var data = new DataView( buffer );
 
 
 			// http://tfc.duke.free.fr/coding/md2-specs-en.html
 			// http://tfc.duke.free.fr/coding/md2-specs-en.html
@@ -163,14 +165,14 @@ THREE.MD2Loader.prototype = {
 			var uvs = [];
 			var uvs = [];
 			var offset = header.offset_st;
 			var offset = header.offset_st;
 
 
-			for ( var i = 0; i < header.num_st; i ++, offset += 4 ) {
+			for ( var i = 0, l = header.num_st; i < l; i ++ ) {
 
 
 				var u = data.getInt16( offset + 0, true );
 				var u = data.getInt16( offset + 0, true );
 				var v = data.getInt16( offset + 2, true );
 				var v = data.getInt16( offset + 2, true );
 
 
-				var uv = new THREE.Vector2( u / header.skinwidth, 1 - ( v / header.skinheight ) );
+				uvs.push( new THREE.Vector2( u / header.skinwidth, 1 - ( v / header.skinheight ) ) );
 
 
-				uvs.push( uv );
+				offset += 4;
 
 
 			}
 			}
 
 
@@ -178,15 +180,13 @@ THREE.MD2Loader.prototype = {
 
 
 			var offset = header.offset_tris;
 			var offset = header.offset_tris;
 
 
-			for ( var i = 0; i < header.num_tris; i ++ ) {
+			for ( var i = 0, l = header.num_tris; i < l; i ++ ) {
 
 
 				var a = data.getUint16( offset + 0, true );
 				var a = data.getUint16( offset + 0, true );
 				var b = data.getUint16( offset + 2, true );
 				var b = data.getUint16( offset + 2, true );
 				var c = data.getUint16( offset + 4, true );
 				var c = data.getUint16( offset + 4, true );
 
 
-				var face = new THREE.Face3( a, b, c );
-
-				geometry.faces.push( face );
+				geometry.faces.push( new THREE.Face3( a, b, c ) );
 
 
 				geometry.faceVertexUvs[ 0 ].push( [
 				geometry.faceVertexUvs[ 0 ].push( [
 					uvs[ data.getUint16( offset + 6, true ) ],
 					uvs[ data.getUint16( offset + 6, true ) ],
@@ -202,10 +202,11 @@ THREE.MD2Loader.prototype = {
 
 
 			var translation = new THREE.Vector3();
 			var translation = new THREE.Vector3();
 			var scale = new THREE.Vector3();
 			var scale = new THREE.Vector3();
+			var string = [];
 
 
 			var offset = header.offset_frames;
 			var offset = header.offset_frames;
 
 
-			for ( var i = 0; i < header.num_frames; i ++ ) {
+			for ( var i = 0, l = header.num_frames; i < l; i ++ ) {
 
 
 				scale.set(
 				scale.set(
 					data.getFloat32( offset + 0, true ),
 					data.getFloat32( offset + 0, true ),
@@ -221,8 +222,6 @@ THREE.MD2Loader.prototype = {
 
 
 				offset += 24;
 				offset += 24;
 
 
-				var string = [];
-
 				for ( var j = 0; j < 16; j ++ ) {
 				for ( var j = 0; j < 16; j ++ ) {
 
 
 					string[ j ] = data.getUint8( offset + j, true );
 					string[ j ] = data.getUint8( offset + j, true );
@@ -250,9 +249,7 @@ THREE.MD2Loader.prototype = {
 						y * scale.y + translation.y
 						y * scale.y + translation.y
 					);
 					);
 
 
-					var normal = new THREE.Vector3(
-						normals[ n ][ 0 ], normals[ n ][ 2 ], normals[ n ][ 1 ]
-					);
+					var normal = new THREE.Vector3().fromArray( normals[ n ] );
 
 
 					frame.vertices.push( vertex );
 					frame.vertices.push( vertex );
 					frame.normals.push( normal );
 					frame.normals.push( normal );
@@ -305,6 +302,8 @@ THREE.MD2Loader.prototype = {
 
 
 			}
 			}
 
 
+			console.timeEnd( 'MD2Loader' );
+
 			return geometry;
 			return geometry;
 
 
 		}
 		}