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

Updated builds.

上级 d43dd386
......@@ -973,6 +973,10 @@ THREE.Quaternion.prototype = {
slerp: function ( qb, t ) {
if ( t === 0 ) return this;
if ( t === 1 ) return this.copy( qb );
var x = this._x, y = this._y, z = this._z, w = this._w;
// http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/slerp/
......@@ -10050,6 +10054,90 @@ THREE.Geometry.prototype = {
},
fromBufferGeometry: function ( geometry ) {
var scope = this;
var attributes = geometry.attributes;
var indices = attributes.index !== undefined && attributes.index.array;
var normals = attributes.normal !== undefined && attributes.normal.array;
var colors = attributes.color !== undefined && attributes.color.array;
var uvs = attributes.uv !== undefined && attributes.uv.array;
var vertices = attributes.position.array;
var tempNormals = [];
var tempUVs = [];
for ( var i = 0, j = 0; i < vertices.length; i += 3, j += 2 ) {
scope.vertices.push( new THREE.Vector3( vertices[ i ], vertices[ i + 1 ], vertices[ i + 2 ] ) );
if ( normals !== undefined ) {
tempNormals.push( new THREE.Vector3( normals[ i ], normals[ i + 1 ], normals[ i + 2 ] ) );
}
if ( colors !== undefined ) {
scope.colors.push( new THREE.Color( colors[ i ], colors[ i + 1 ], colors[ i + 2 ] ) );
}
if ( uvs !== undefined ) {
tempUVs.push( new THREE.Vector2( uvs[ j ], uvs[ j + 1 ] ) );
}
}
var addFace = function ( a, b, c ) {
var vertexNormals = normals !== undefined ? [ tempNormals[ a ], tempNormals[ b ], tempNormals[ c ] ] : [];
var vertexColors = colors !== undefined ? [ scope.colors[ a ], scope.colors[ b ], scope.colors[ c ] ] : [];
scope.faces.push( new THREE.Face3( a, b, c, vertexNormals, vertexColors ) );
scope.faceVertexUvs[ 0 ].push( [ tempUVs[ a ], tempUVs[ b ], tempUVs[ c ] ] );
};
if ( indices !== undefined ) {
for ( var i = 0; i < indices.length; i += 3 ) {
addFace( indices[ i ], indices[ i + 1 ], indices[ i + 2 ] );
}
} else {
for ( var i = 0; i < vertices.length / 3; i += 3 ) {
addFace( i, i + 1, i + 2 );
}
}
if ( geometry.boundingBox !== null ) {
this.boundingBox = geometry.boundingBox.clone();
}
if ( geometry.boundingSphere !== null ) {
this.boundingSphere = geometry.boundingSphere.clone();
}
return this;
},
center: function () {
this.computeBoundingBox();
......
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册