提交 b1b9c363 编写于 作者: M Mr.doob

Updated CTMLoader to the new BufferAttribute. Minor improvements to BufferAttribute. Fixes #4731.

上级 457c5408
......@@ -197,31 +197,31 @@ THREE.CTMLoader.prototype.createModel = function ( file, callback ) {
this.materials = [];
// init GL buffers
var vertexIndexArray = file.body.indices,
vertexPositionArray = file.body.vertices,
vertexNormalArray = file.body.normals;
var indices = file.body.indices,
positions = file.body.vertices,
normals = file.body.normals;
var vertexUvArray, vertexColorArray;
var uvs, colors;
if ( file.body.uvMaps !== undefined && file.body.uvMaps.length > 0 ) {
vertexUvArray = file.body.uvMaps[ 0 ].uv;
uvs = file.body.uvMaps[ 0 ].uv;
}
if ( file.body.attrMaps !== undefined && file.body.attrMaps.length > 0 && file.body.attrMaps[ 0 ].name === "Color" ) {
vertexColorArray = file.body.attrMaps[ 0 ].attr;
colors = file.body.attrMaps[ 0 ].attr;
}
this.addAttribute( 'index', vertexIndexArray, 1 );
this.addAttribute( 'position', vertexPositionArray, 3 );
this.addAttribute( 'index', new THREE.Uint32Attribute( indices.length, 1 ).set( indices ) );
this.addAttribute( 'position', new THREE.Float32Attribute( positions.length, 3 ).set( positions ) );
if ( vertexNormalArray !== undefined )
this.addAttribute( 'normal', vertexNormalArray, 3 );
if ( normals !== undefined )
this.addAttribute( 'normal', new THREE.Float32Attribute( normals.length, 3 ).set( normals ) );
if ( vertexUvArray !== undefined )
this.addAttribute( 'uv', vertexUvArray, 2 );
if ( uvs !== undefined )
this.addAttribute( 'uv', new THREE.Float32Attribute( uvs.length, 2 ).set( uvs ) );
if ( vertexColorArray !== undefined )
this.addAttribute( 'color', vertexColorArray, 4 );
if ( colors !== undefined )
this.addAttribute( 'color', new THREE.Float32Attribute( colors.length, 4 ).set( colors ) );
}
......
......@@ -18,24 +18,32 @@ THREE.BufferAttribute.prototype = {
this.array.set( value );
return this;
},
setX: function ( index, x ) {
this.array[ index * this.itemSize ] = x;
return this;
},
setY: function ( index, y ) {
this.array[ index * this.itemSize + 1 ] = y;
return this;
},
setZ: function ( index, z ) {
this.array[ index * this.itemSize + 2 ] = z;
return this;
},
setXY: function ( index, x, y ) {
......@@ -45,6 +53,8 @@ THREE.BufferAttribute.prototype = {
this.array[ index ] = x;
this.array[ index + 1 ] = y;
return this;
},
setXYZ: function ( index, x, y, z ) {
......@@ -55,6 +65,8 @@ THREE.BufferAttribute.prototype = {
this.array[ index + 1 ] = y;
this.array[ index + 2 ] = z;
return this;
},
setXYZW: function ( index, x, y, z, w ) {
......@@ -66,6 +78,8 @@ THREE.BufferAttribute.prototype = {
this.array[ index + 2 ] = z;
this.array[ index + 3 ] = w;
return this;
}
};
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册