|
@@ -228,35 +228,13 @@ Geometry.prototype = Object.assign( Object.create( EventDispatcher.prototype ),
|
|
|
|
|
|
if ( uvs2 !== undefined ) this.faceVertexUvs[ 1 ] = [];
|
|
|
|
|
|
- var tempNormals = [];
|
|
|
- var tempUVs = [];
|
|
|
- var tempUVs2 = [];
|
|
|
-
|
|
|
for ( var i = 0, j = 0; i < positions.length; i += 3, j += 2 ) {
|
|
|
|
|
|
- scope.vertices.push( new Vector3( positions[ i ], positions[ i + 1 ], positions[ i + 2 ] ) );
|
|
|
-
|
|
|
- if ( normals !== undefined ) {
|
|
|
-
|
|
|
- tempNormals.push( new Vector3( normals[ i ], normals[ i + 1 ], normals[ i + 2 ] ) );
|
|
|
-
|
|
|
- }
|
|
|
+ scope.vertices.push( new Vector3().fromArray( positions, i ) );
|
|
|
|
|
|
if ( colors !== undefined ) {
|
|
|
|
|
|
- scope.colors.push( new Color( colors[ i ], colors[ i + 1 ], colors[ i + 2 ] ) );
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- if ( uvs !== undefined ) {
|
|
|
-
|
|
|
- tempUVs.push( new Vector2( uvs[ j ], uvs[ j + 1 ] ) );
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- if ( uvs2 !== undefined ) {
|
|
|
-
|
|
|
- tempUVs2.push( new Vector2( uvs2[ j ], uvs2[ j + 1 ] ) );
|
|
|
+ scope.colors.push( new Color().fromArray( colors, i ) );
|
|
|
|
|
|
}
|
|
|
|
|
@@ -264,8 +242,16 @@ Geometry.prototype = Object.assign( Object.create( EventDispatcher.prototype ),
|
|
|
|
|
|
function addFace( a, b, c, materialIndex ) {
|
|
|
|
|
|
- var vertexNormals = normals !== undefined ? [ tempNormals[ a ].clone(), tempNormals[ b ].clone(), tempNormals[ c ].clone() ] : [];
|
|
|
- var vertexColors = colors !== undefined ? [ scope.colors[ a ].clone(), scope.colors[ b ].clone(), scope.colors[ c ].clone() ] : [];
|
|
|
+ var vertexColors = ( colors === undefined ) ? [] : [
|
|
|
+ scope.colors[ a ].clone(),
|
|
|
+ scope.colors[ b ].clone(),
|
|
|
+ scope.colors[ c ].clone() ];
|
|
|
+
|
|
|
+ var vertexNormals = ( normals === undefined ) ? [] : [
|
|
|
+ new Vector3().fromArray( normals, a * 3 ),
|
|
|
+ new Vector3().fromArray( normals, b * 3 ),
|
|
|
+ new Vector3().fromArray( normals, c * 3 )
|
|
|
+ ];
|
|
|
|
|
|
var face = new Face3( a, b, c, vertexNormals, vertexColors, materialIndex );
|
|
|
|
|
@@ -273,13 +259,21 @@ Geometry.prototype = Object.assign( Object.create( EventDispatcher.prototype ),
|
|
|
|
|
|
if ( uvs !== undefined ) {
|
|
|
|
|
|
- scope.faceVertexUvs[ 0 ].push( [ tempUVs[ a ].clone(), tempUVs[ b ].clone(), tempUVs[ c ].clone() ] );
|
|
|
+ scope.faceVertexUvs[ 0 ].push( [
|
|
|
+ new Vector2().fromArray( uvs, a * 2 ),
|
|
|
+ new Vector2().fromArray( uvs, b * 2 ),
|
|
|
+ new Vector2().fromArray( uvs, c * 2 )
|
|
|
+ ] );
|
|
|
|
|
|
}
|
|
|
|
|
|
if ( uvs2 !== undefined ) {
|
|
|
|
|
|
- scope.faceVertexUvs[ 1 ].push( [ tempUVs2[ a ].clone(), tempUVs2[ b ].clone(), tempUVs2[ c ].clone() ] );
|
|
|
+ scope.faceVertexUvs[ 1 ].push( [
|
|
|
+ new Vector2().fromArray( uvs2, a * 2 ),
|
|
|
+ new Vector2().fromArray( uvs2, b * 2 ),
|
|
|
+ new Vector2().fromArray( uvs2, c * 2 )
|
|
|
+ ] );
|
|
|
|
|
|
}
|
|
|
|