diff --git a/examples/js/utils/BufferGeometryUtils.js b/examples/js/utils/BufferGeometryUtils.js index f2d22c3382b7a168aab87c91dee26ac188d3c979..d4b96d033e73a8537f087a886befa4b87ba5c7a9 100644 --- a/examples/js/utils/BufferGeometryUtils.js +++ b/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; } diff --git a/examples/jsm/utils/BufferGeometryUtils.js b/examples/jsm/utils/BufferGeometryUtils.js index a80d48cb6e080720e4ce704d5dc1a5a34299210c..038dde2962e698fe8faa03834f8ef33b293e6aaf 100644 --- a/examples/jsm/utils/BufferGeometryUtils.js +++ b/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; }