Browse Source

PolyhedronGeometry code clean up.

Mr.doob 12 years ago
parent
commit
b34ef92fab
1 changed files with 39 additions and 9 deletions
  1. 39 9
      src/extras/geometries/PolyhedronGeometry.js

+ 39 - 9
src/extras/geometries/PolyhedronGeometry.js

@@ -20,17 +20,22 @@ THREE.PolyhedronGeometry = function ( vertices, faces, radius, detail ) {
 
 	var midpoints = [], p = this.vertices;
 
-	var f = []
+	var f = [];
 	for ( var i = 0, l = faces.length; i < l; i ++ ) {
+
 		var v1 = p[ faces[ i ][ 0 ] ];
 		var v2 = p[ faces[ i ][ 1 ] ];
 		var v3 = p[ faces[ i ][ 2 ] ];
-	  f[ i ] = new THREE.Face3( v1.index, v2.index, v3.index, [ v1.clone(), v2.clone(), v3.clone() ] );
+
+		f[ i ] = new THREE.Face3( v1.index, v2.index, v3.index, [ v1.clone(), v2.clone(), v3.clone() ] );
+
 	}
 
 	for ( var i = 0, l = f.length; i < l; i ++ ) {
-	subdivide(f[ i ], detail);
-}
+
+		subdivide(f[ i ], detail);
+
+	}
 
 	this.mergeVertices();
 
@@ -64,24 +69,27 @@ THREE.PolyhedronGeometry = function ( vertices, faces, radius, detail ) {
 	// Approximate a curved face with recursively sub-divided triangles.
 
 	function make( v1, v2, v3 ) {
+
 		var face = new THREE.Face3( v1.index, v2.index, v3.index, [ v1.clone(), v2.clone(), v3.clone() ] );
 		face.centroid.add( v1 ).add( v2 ).add( v3 ).divideScalar( 3 );
 		face.normal.copy( face.centroid ).normalize();
 		that.faces.push( face );
 
 		var azi = azimuth( face.centroid );
+
 		that.faceVertexUvs[ 0 ].push( [
 			correctUV( v1.uv, v1, azi ),
 			correctUV( v2.uv, v2, azi ),
 			correctUV( v3.uv, v3, azi )
 		] );
-	}
 
+	}
 
 
 	// Analytically subdivide a face to the required detail level.
 
 	function subdivide(face, detail ) {
+
 		var cols = Math.pow(2, detail);
 		var cells = Math.pow(4, detail);
 		var a = prepare( that.vertices[ face.a ] );
@@ -92,37 +100,59 @@ THREE.PolyhedronGeometry = function ( vertices, faces, radius, detail ) {
 		// Construct all of the vertices for this subdivision.
 
 		for ( var i = 0 ; i <= cols; i ++ ) {
+
 			v[ i ] = [];
+
 			var aj = prepare( a.clone().lerp( c, i / cols ) );
 			var bj = prepare( b.clone().lerp( c, i / cols ) );
 			var rows = cols - i;
+
 			for ( var j = 0; j <= rows; j ++) {
+
 				if ( j == 0 && i == cols ) {
+
 					v[ i ][ j ] = aj;
+
 				} else {
+
 					v[ i ][ j ] = prepare( aj.clone().lerp( bj, j / rows ) );
+
 				}
+
 			}
+
 		}
 
 		// Construct all of the faces.
 
 		for ( var i = 0; i < cols ; i ++ ) {
+
 			for ( var j = 0; j < 2 * (cols - i) - 1; j ++ ) {
+
 				var k = Math.floor( j / 2 );
+
 				if ( j % 2 == 0 ) {
+
 					make(
-            v[ i ][ k + 1],
-            v[ i + 1 ][ k ], 
-            v[ i ][ k ]);
+						v[ i ][ k + 1],
+						v[ i + 1 ][ k ],
+						v[ i ][ k ]
+					);
+
 				} else {
+
 					make(
 						v[ i ][ k + 1 ],
 						v[ i + 1][ k + 1],
-						v[ i + 1 ][ k ]);
+						v[ i + 1 ][ k ]
+					);
+
 				}
+
 			}
+
 		}
+
 	}