فهرست منبع

Fixed regular expression so that they match better and more efficiently (without leading whitespace). None of my old VRML models could be loaded using the previous versions of the regexes.

Bart McLeod 11 سال پیش
والد
کامیت
04b7c80564
1فایلهای تغییر یافته به همراه5 افزوده شده و 5 حذف شده
  1. 5 5
      examples/js/loaders/VRMLLoader.js

+ 5 - 5
examples/js/loaders/VRMLLoader.js

@@ -91,9 +91,9 @@ THREE.VRMLLoader.prototype = {
 			}
 			}
 
 
 			var defines = {};
 			var defines = {};
-			var float_pattern = /( +[\d|\.|\+|\-|e]+)/;
-			var float3_pattern = /( +[\d|\.|\+|\-|e]+),?( +[\d|\.|\+|\-|e]+),?( +[\d|\.|\+|\-|e]+)/;
-			var float4_pattern = /( +[\d|\.|\+|\-|e]+),?( +[\d|\.|\+|\-|e]+),?( +[\d|\.|\+|\-|e]+),?( +[\d|\.|\+|\-|e]+)/;
+			var float_pattern = /\s+([\d|\.|\+|\-|e]+)/;
+			var float3_pattern = /\s+([\d|\.|\+|\-|e]+),?\s+([\d|\.|\+|\-|e]+),?\s+([\d|\.|\+|\-|e]+)/;
+			var float4_pattern = /\s+([\d|\.|\+|\-|e]+),?\s+([\d|\.|\+|\-|e]+),?\s+([\d|\.|\+|\-|e]+),?\s+([\d|\.|\+|\-|e]+)/;
 
 
 			var parseNode = function ( data, parent ) {
 			var parseNode = function ( data, parent ) {
 
 
@@ -257,7 +257,7 @@ THREE.VRMLLoader.prototype = {
 
 
 					} else if ( /Sphere/.exec( data.string ) ) {
 					} else if ( /Sphere/.exec( data.string ) ) {
 
 
-						var result = /radius( +[\d|\.|\+|\-|e]+)/.exec( data.children[ 0 ] );
+						var result = /radius\s+([\d|\.|\+|\-|e]+)/.exec( data.children[ 0 ] );
 
 
 						parent.geometry = new THREE.SphereGeometry( parseFloat( result[ 1 ] ) );
 						parent.geometry = new THREE.SphereGeometry( parseFloat( result[ 1 ] ) );
 
 
@@ -311,7 +311,7 @@ THREE.VRMLLoader.prototype = {
 
 
 								} else if ( /transparency/.exec( parameter ) ) {
 								} else if ( /transparency/.exec( parameter ) ) {
 
 
-									var result = /( +[\d|\.|\+|\-|e]+)/.exec( parameter );
+									var result = /\s+([\d|\.|\+|\-|e]+)/.exec( parameter );
 
 
 									material.opacity = parseFloat( result[ 1 ] );
 									material.opacity = parseFloat( result[ 1 ] );
 									material.transparent = true;
 									material.transparent = true;