Browse Source

Error improvements for more specificity. Add errors to file in /jsm

Marquizzo 5 years ago
parent
commit
fb71f0a7eb
2 changed files with 75 additions and 24 deletions
  1. 13 13
      examples/js/utils/BufferGeometryUtils.js
  2. 62 11
      examples/jsm/utils/BufferGeometryUtils.js

+ 13 - 13
examples/js/utils/BufferGeometryUtils.js

@@ -17,7 +17,7 @@ THREE.BufferGeometryUtils = {
 			 attributes.normal === undefined ||
 			 attributes.uv === undefined ) {
 
-			console.warn( 'THREE.BufferGeometryUtils: .computeTangents() failed. Missing required attributes (index, position, normal or uv)' );
+			console.error( 'THREE.BufferGeometryUtils: .computeTangents() failed. Missing required attributes (index, position, normal or uv)' );
 			return;
 
 		}
@@ -199,7 +199,7 @@ THREE.BufferGeometryUtils = {
 
 			if ( isIndexed !== ( geometry.index !== null ) ) {
 
-				console.warn( 'THREE.BufferGeometryUtils: .mergeBufferGeometries() failed. All geometries must have compatible attributes; make sure index attribute exists among all geometries, or in none of them.' );
+				console.error( 'THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index ' + i + '. All geometries must have compatible attributes; make sure index attribute exists among all geometries, or in none of them.' );
 				return null;
 
 			}
@@ -210,7 +210,7 @@ THREE.BufferGeometryUtils = {
 
 				if ( ! attributesUsed.has( name ) ) {
 
-					console.warn( 'THREE.BufferGeometryUtils: .mergeBufferGeometries() failed. All geometries must have compatible attributes; make sure ' + name + ' attribute exists among all geometries, or in none of them.' );
+					console.error( 'THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index ' + i + '. All geometries must have compatible attributes; make sure "' + name + '" attribute exists among all geometries, or in none of them.' );
 					return null;
 
 				}
@@ -225,7 +225,7 @@ THREE.BufferGeometryUtils = {
 
 			if ( morphTargetsRelative !== geometry.morphTargetsRelative ) {
 
-				console.warn( 'THREE.BufferGeometryUtils: .mergeBufferGeometries() failed, .morphTargetsRelative must be consistent throughout all geometries.' );
+				console.error( 'THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index ' + i + '. .morphTargetsRelative must be consistent throughout all geometries.' );
 				return null;
 
 			}
@@ -234,7 +234,7 @@ THREE.BufferGeometryUtils = {
 
 				if ( ! morphAttributesUsed.has( name ) ) {
 
-					console.warn( 'THREE.BufferGeometryUtils: .mergeBufferGeometries() failed, .morphAttributes must be consistent throughout all geometries.' );
+					console.error( 'THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index ' + i + '.  .morphAttributes must be consistent throughout all geometries.' );
 					return null;
 
 				}
@@ -264,7 +264,7 @@ THREE.BufferGeometryUtils = {
 
 				} else {
 
-					console.warn( '??????? Why does this fail ??????' );
+					console.error( 'THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index ' + i + '. The geometry must have either an index or a position attribute' );
 					return null;
 
 				}
@@ -310,7 +310,7 @@ THREE.BufferGeometryUtils = {
 
 			if ( ! mergedAttribute ) {
 
-				console.warn( 'THREE.BufferGeometryUtils: .mergeBufferGeometries() failed while trying to merge the ' + name + ' attribute.' );
+				console.error( 'THREE.BufferGeometryUtils: .mergeBufferGeometries() failed while trying to merge the ' + name + ' attribute.' );
 				return null;
 
 			}
@@ -344,7 +344,7 @@ THREE.BufferGeometryUtils = {
 
 				if ( ! mergedMorphAttribute ) {
 
-					console.warn( 'THREE.BufferGeometryUtils: .mergeBufferGeometries() failed while trying to merge the ' + name + ' morphAttribute.' );
+					console.error( 'THREE.BufferGeometryUtils: .mergeBufferGeometries() failed while trying to merge the ' + name + ' morphAttribute.' );
 					return null;
 
 				}
@@ -376,7 +376,7 @@ THREE.BufferGeometryUtils = {
 
 			if ( attribute.isInterleavedBufferAttribute ) {
 
-				console.warn( 'THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. InterleavedBufferAttributes are not supported.' );
+				console.error( 'THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. InterleavedBufferAttributes are not supported.' );
 				return null;
 
 			}
@@ -384,7 +384,7 @@ THREE.BufferGeometryUtils = {
 			if ( TypedArray === undefined ) TypedArray = attribute.array.constructor;
 			if ( TypedArray !== attribute.array.constructor ) {
 
-				console.warn( 'THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. Property .array must be of consistent array types across matching attributes.' );
+				console.error( 'THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. BufferAttribute.array must be of consistent array types across matching attributes.' );
 				return null;
 
 			}
@@ -392,7 +392,7 @@ THREE.BufferGeometryUtils = {
 			if ( itemSize === undefined ) itemSize = attribute.itemSize;
 			if ( itemSize !== attribute.itemSize ) {
 
-				console.warn( 'THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. Property .itemSize must be consistent across matching attributes.' );
+				console.error( 'THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. BufferAttribute.itemSize must be consistent across matching attributes.' );
 				return null;
 
 			}
@@ -400,7 +400,7 @@ THREE.BufferGeometryUtils = {
 			if ( normalized === undefined ) normalized = attribute.normalized;
 			if ( normalized !== attribute.normalized ) {
 
-				console.warn( 'THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. Property .normalized must be consistent across matching attributes.' );
+				console.error( 'THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. BufferAttribute.normalized must be consistent across matching attributes.' );
 				return null;
 
 			}
@@ -444,7 +444,7 @@ THREE.BufferGeometryUtils = {
 			if ( TypedArray === undefined ) TypedArray = attribute.array.constructor;
 			if ( TypedArray !== attribute.array.constructor ) {
 
-				console.warn( 'AttributeBuffers of different types cannot be interleaved' );
+				console.error( 'AttributeBuffers of different types cannot be interleaved' );
 				return null;
 
 			}

+ 62 - 11
examples/jsm/utils/BufferGeometryUtils.js

@@ -209,13 +209,22 @@ var BufferGeometryUtils = {
 
 			// ensure that all geometries are indexed, or none
 
-			if ( isIndexed !== ( geometry.index !== null ) ) return null;
+			if ( isIndexed !== ( geometry.index !== null ) ) {
+				console.error( 'THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index ' + i + '. All geometries must have compatible attributes; make sure index attribute exists among all geometries, or in none of them.' );
+				return null;
+
+			}
 
 			// gather attributes, exit early if they're different
 
 			for ( var name in geometry.attributes ) {
 
-				if ( ! attributesUsed.has( name ) ) return null;
+				if ( ! attributesUsed.has( name ) ) {
+
+					console.error( 'THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index ' + i + '. All geometries must have compatible attributes; make sure "' + name + '" attribute exists among all geometries, or in none of them.' );
+					return null;
+
+				}
 
 				if ( attributes[ name ] === undefined ) attributes[ name ] = [];
 
@@ -225,11 +234,21 @@ var BufferGeometryUtils = {
 
 			// gather morph attributes, exit early if they're different
 
-			if ( morphTargetsRelative !== geometry.morphTargetsRelative ) return null;
+			if ( morphTargetsRelative !== geometry.morphTargetsRelative ) {
+
+				console.error( 'THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index ' + i + '. .morphTargetsRelative must be consistent throughout all geometries.' );
+				return null;
+
+			}
 
 			for ( var name in geometry.morphAttributes ) {
 
-				if ( ! morphAttributesUsed.has( name ) ) return null;
+				if ( ! morphAttributesUsed.has( name ) ) {
+
+					console.error( 'THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index ' + i + '.  .morphAttributes must be consistent throughout all geometries.' );
+					return null;
+
+				}
 
 				if ( morphAttributes[ name ] === undefined ) morphAttributes[ name ] = [];
 
@@ -256,6 +275,7 @@ var BufferGeometryUtils = {
 
 				} else {
 
+					console.error( 'THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index ' + i + '. The geometry must have either an index or a position attribute' );
 					return null;
 
 				}
@@ -299,7 +319,12 @@ var BufferGeometryUtils = {
 
 			var mergedAttribute = this.mergeBufferAttributes( attributes[ name ] );
 
-			if ( ! mergedAttribute ) return null;
+			if ( ! mergedAttribute ) {
+
+				console.error( 'THREE.BufferGeometryUtils: .mergeBufferGeometries() failed while trying to merge the ' + name + ' attribute.' );
+				return null;
+
+			}
 
 			mergedGeometry.setAttribute( name, mergedAttribute );
 
@@ -328,7 +353,12 @@ var BufferGeometryUtils = {
 
 				var mergedMorphAttribute = this.mergeBufferAttributes( morphAttributesToMerge );
 
-				if ( ! mergedMorphAttribute ) return null;
+				if ( ! mergedMorphAttribute ) {
+
+					console.error( 'THREE.BufferGeometryUtils: .mergeBufferGeometries() failed while trying to merge the ' + name + ' morphAttribute.' );
+					return null;
+
+				}
 
 				mergedGeometry.morphAttributes[ name ].push( mergedMorphAttribute );
 
@@ -355,16 +385,37 @@ var BufferGeometryUtils = {
 
 			var attribute = attributes[ i ];
 
-			if ( attribute.isInterleavedBufferAttribute ) return null;
+
+			if ( attribute.isInterleavedBufferAttribute ) {
+
+				console.error( 'THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. InterleavedBufferAttributes are not supported.' );
+				return null;
+
+			}
 
 			if ( TypedArray === undefined ) TypedArray = attribute.array.constructor;
-			if ( TypedArray !== attribute.array.constructor ) return null;
+			if ( TypedArray !== attribute.array.constructor ) {
+
+				console.error( 'THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. BufferAttribute.array must be of consistent array types across matching attributes.' );
+				return null;
+
+			}
 
 			if ( itemSize === undefined ) itemSize = attribute.itemSize;
-			if ( itemSize !== attribute.itemSize ) return null;
+			if ( itemSize !== attribute.itemSize ) {
+
+				console.error( 'THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. BufferAttribute.itemSize must be consistent across matching attributes.' );
+				return null;
+
+			}
 
 			if ( normalized === undefined ) normalized = attribute.normalized;
-			if ( normalized !== attribute.normalized ) return null;
+			if ( normalized !== attribute.normalized ) {
+
+				console.error( 'THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. BufferAttribute.normalized must be consistent across matching attributes.' );
+				return null;
+
+			}
 
 			arrayLength += attribute.array.length;
 
@@ -405,7 +456,7 @@ var BufferGeometryUtils = {
 			if ( TypedArray === undefined ) TypedArray = attribute.array.constructor;
 			if ( TypedArray !== attribute.array.constructor ) {
 
-				console.warn( 'AttributeBuffers of different types cannot be interleaved' );
+				console.error( 'AttributeBuffers of different types cannot be interleaved' );
 				return null;
 
 			}