Browse Source

ColladaLoader2: Ignore meshes without primitives. Faster parseFloats/parseInts?

Mr.doob 9 years ago
parent
commit
6a53ce9d08
1 changed files with 10 additions and 4 deletions
  1. 10 4
      examples/js/loaders/ColladaLoader2.js

+ 10 - 4
examples/js/loaders/ColladaLoader2.js

@@ -44,11 +44,11 @@ THREE.ColladaLoader.prototype = {
 
 
 		function parseFloats( text ) {
 		function parseFloats( text ) {
 
 
-			var array = [];
 			var parts = text.trim().split( /\s+/ );
 			var parts = text.trim().split( /\s+/ );
+			var array = new Array( parts.length );
 
 
 			for ( var i = 0, l = parts.length; i < l; i ++ ) {
 			for ( var i = 0, l = parts.length; i < l; i ++ ) {
-				array.push( parseFloat( parts[ i ] ) );
+				array[ i ] = parseFloat( parts[ i ] );
 			}
 			}
 
 
 			return array;
 			return array;
@@ -57,11 +57,11 @@ THREE.ColladaLoader.prototype = {
 
 
 		function parseInts( text ) {
 		function parseInts( text ) {
 
 
-			var array = [];
 			var parts = text.trim().split( /\s+/ );
 			var parts = text.trim().split( /\s+/ );
+			var array = new Array( parts.length );
 
 
 			for ( var i = 0, l = parts.length; i < l; i ++ ) {
 			for ( var i = 0, l = parts.length; i < l; i ++ ) {
-				array.push( parseInt( parts[ i ] ) );
+				array[ i ] = parseInt( parts[ i ] );
 			}
 			}
 
 
 			return array;
 			return array;
@@ -210,6 +210,8 @@ THREE.ColladaLoader.prototype = {
 
 
 		function createGeometry( mesh ) {
 		function createGeometry( mesh ) {
 
 
+			if ( mesh.primitive === undefined ) return;
+
 			var sources = mesh.sources;
 			var sources = mesh.sources;
 			var primitive = mesh.primitive;
 			var primitive = mesh.primitive;
 
 
@@ -437,8 +439,12 @@ THREE.ColladaLoader.prototype = {
 
 
 		console.time( 'ColladaLoader2' );
 		console.time( 'ColladaLoader2' );
 
 
+		console.time( 'ColladaLoader2: DOMParser' );
+
 		var xml = new DOMParser().parseFromString( text, 'text/xml' );
 		var xml = new DOMParser().parseFromString( text, 'text/xml' );
 
 
+		console.timeEnd( 'ColladaLoader2: DOMParser' );
+
 		var camerasLibrary = parseCamerasLibrary( xml );
 		var camerasLibrary = parseCamerasLibrary( xml );
 		var geometriesLibrary = parseGeometriesLibrary( xml );
 		var geometriesLibrary = parseGeometriesLibrary( xml );
 		var nodesLibrary = parseNodesLibrary( xml );
 		var nodesLibrary = parseNodesLibrary( xml );