From 4d8c6196c1047f366926de7f570862e2fd19ea95 Mon Sep 17 00:00:00 2001 From: "Mr.doob" Date: Tue, 17 Apr 2012 02:12:41 +0200 Subject: [PATCH] OBJLoader: Completed regular expresions for quad support. --- examples/js/loaders/OBJLoader.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/examples/js/loaders/OBJLoader.js b/examples/js/loaders/OBJLoader.js index f3d64f3c82..57d3d62676 100644 --- a/examples/js/loaders/OBJLoader.js +++ b/examples/js/loaders/OBJLoader.js @@ -33,6 +33,8 @@ THREE.OBJLoader.prototype.parse = function ( data, callback ) { var geometry = new THREE.Geometry(); + console.time( 'THREE.OBJLoader.parse()' ); + function vertex( a, b, c ) { return new THREE.Vector3( parseFloat( a ), parseFloat( b ), parseFloat( c ) ); @@ -56,7 +58,7 @@ THREE.OBJLoader.prototype.parse = function ( data, callback ) { // v float float float // ["v 1.0 2.0 3.0", "1.0", "2.0", "3.0"] - pattern = /v ([\-|\d|.]+) ([\-|\d|.]+) ([\-|\d|.]+)/g; + pattern = /v( [\-|\d|.]+)( [\-|\d|.]+)( [\-|\d|.]+)/g; while ( ( result = pattern.exec( data ) ) != null ) { @@ -82,7 +84,7 @@ THREE.OBJLoader.prototype.parse = function ( data, callback ) { // f vertex/uv vertex/uv vertex/uv ... // ["f 1/1 2/2 3/3", " 1/1", "1", "1", " 2/2", "2", "2", " 3/3", "3", "3", undefined, undefined, undefined] - pattern = /f ([\d]+)\/([\d]+) ([\d]+)\/([\d]+) ([\d]+)\/([\d]+)/g; + pattern = /f( ([\d]+)\/([\d]+))( ([\d]+)\/([\d]+))( ([\d]+)\/([\d]+))( ([\d]+)\/([\d]+))?/g; while ( ( result = pattern.exec( data ) ) != null ) { @@ -112,7 +114,7 @@ THREE.OBJLoader.prototype.parse = function ( data, callback ) { // f vertex//normal vertex//normal vertex//normal ... // ["f 1//1 2//2 3//3", " 1//1", "1", "1", " 2//2", "2", "2", " 3//3", "3", "3", undefined, undefined, undefined] - pattern = /f ([\d]+)\/\/([\d]+) ([\d]+)\/\/([\d]+) ([\d]+)\/\/([\d]+)/g; + pattern = /f( ([\d]+)\/\/([\d]+))( ([\d]+)\/\/([\d]+))( ([\d]+)\/\/([\d]+))( ([\d]+)\/\/([\d]+))?/g; while ( ( result = pattern.exec( data ) ) != null ) { @@ -124,6 +126,8 @@ THREE.OBJLoader.prototype.parse = function ( data, callback ) { } + console.timeEnd( 'THREE.OBJLoader.parse()' ); + geometry.computeCentroids(); callback( geometry ); -- GitLab