|
@@ -589,19 +589,9 @@ THREE.BufferGeometryUtils = {
|
|
|
|
|
|
var name = attributeNames[ i ];
|
|
|
var oldAttribute = geometry.getAttribute( name );
|
|
|
- var attribute;
|
|
|
|
|
|
var buffer = new oldAttribute.array.constructor( attrArrays[ name ] );
|
|
|
- if ( oldAttribute.isInterleavedBufferAttribute ) {
|
|
|
-
|
|
|
- attribute = new THREE.BufferAttribute( buffer, oldAttribute.itemSize, oldAttribute.itemSize );
|
|
|
-
|
|
|
- } else {
|
|
|
-
|
|
|
- attribute = geometry.getAttribute( name ).clone();
|
|
|
- attribute.setArray( buffer );
|
|
|
-
|
|
|
- }
|
|
|
+ var attribute = new THREE.BufferAttribute( buffer, oldAttribute.itemSize, oldAttribute.normalized );
|
|
|
|
|
|
result.addAttribute( name, attribute );
|
|
|
|
|
@@ -610,8 +600,10 @@ THREE.BufferGeometryUtils = {
|
|
|
|
|
|
for ( var j = 0; j < morphAttrsArrays[ name ].length; j ++ ) {
|
|
|
|
|
|
- var morphAttribute = geometry.morphAttributes[ name ][ j ].clone();
|
|
|
- morphAttribute.setArray( new morphAttribute.array.constructor( morphAttrsArrays[ name ][ j ] ) );
|
|
|
+ var oldMorphAttribute = geometry.morphAttributes[ name ][ j ];
|
|
|
+
|
|
|
+ var buffer = new oldMorphAttribute.array.constructor( morphAttrsArrays[ name ][ j ] );
|
|
|
+ var morphAttribute = new THREE.BufferAttribute( buffer, oldMorphAttribute.itemSize, oldMorphAttribute.normalized );
|
|
|
result.morphAttributes[ name ][ j ] = morphAttribute;
|
|
|
|
|
|
}
|
|
@@ -620,23 +612,7 @@ THREE.BufferGeometryUtils = {
|
|
|
|
|
|
}
|
|
|
|
|
|
- // Generate an index buffer typed array
|
|
|
- var cons = Uint8Array;
|
|
|
- if ( newIndices.length >= Math.pow( 2, 8 ) ) cons = Uint16Array;
|
|
|
- if ( newIndices.length >= Math.pow( 2, 16 ) ) cons = Uint32Array;
|
|
|
-
|
|
|
- var newIndexBuffer = new cons( newIndices );
|
|
|
- var newIndices = null;
|
|
|
- if ( indices === null ) {
|
|
|
-
|
|
|
- newIndices = new THREE.BufferAttribute( newIndexBuffer, 1 );
|
|
|
-
|
|
|
- } else {
|
|
|
-
|
|
|
- newIndices = geometry.getIndex().clone();
|
|
|
- newIndices.setArray( newIndexBuffer );
|
|
|
-
|
|
|
- }
|
|
|
+ // indices
|
|
|
|
|
|
result.setIndex( newIndices );
|
|
|
|