提交 26ffbd29 编写于 作者: M Mugen87

Examples: Remove usage of BufferAttribute.setArray().

上级 4ff90827
......@@ -1910,7 +1910,7 @@ THREE.GLTFLoader = ( function () {
if ( bufferView !== null ) {
// Avoid modifying the original ArrayBuffer, if the bufferView wasn't initialized with zeroes.
bufferAttribute.setArray( bufferAttribute.array.slice() );
bufferAttribute = new THREE.BufferAttribute( bufferAttribute.array.slice(), bufferAttribute.itemSize, bufferAttribute.normalized );
}
......
......@@ -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 );
......
......@@ -1974,7 +1974,7 @@ var GLTFLoader = ( function () {
if ( bufferView !== null ) {
// Avoid modifying the original ArrayBuffer, if the bufferView wasn't initialized with zeroes.
bufferAttribute.setArray( bufferAttribute.array.slice() );
bufferAttribute = new BufferAttribute( bufferAttribute.array.slice(), bufferAttribute.itemSize, bufferAttribute.normalized );
}
......
......@@ -598,19 +598,9 @@ var 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 BufferAttribute( buffer, oldAttribute.itemSize, oldAttribute.itemSize );
} else {
attribute = geometry.getAttribute( name ).clone();
attribute.setArray( buffer );
}
var attribute = new BufferAttribute( buffer, oldAttribute.itemSize, oldAttribute.normalized );
result.addAttribute( name, attribute );
......@@ -619,8 +609,10 @@ var 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 BufferAttribute( buffer, oldMorphAttribute.itemSize, oldMorphAttribute.normalized );
result.morphAttributes[ name ][ j ] = morphAttribute;
}
......@@ -629,23 +621,7 @@ var 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 BufferAttribute( newIndexBuffer, 1 );
} else {
newIndices = geometry.getIndex().clone();
newIndices.setArray( newIndexBuffer );
}
// indices
result.setIndex( newIndices );
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册