Browse Source

OBJExporter: Correct Tab Styles

Mugen87 9 năm trước cách đây
mục cha
commit
c745c3b506
1 tập tin đã thay đổi với 141 bổ sung141 xóa
  1. 141 141
      examples/js/exporters/OBJExporter.js

+ 141 - 141
examples/js/exporters/OBJExporter.js

@@ -2,250 +2,250 @@
  * @author mrdoob / http://mrdoob.com/
  */
 
- THREE.OBJExporter = function () {};
+THREE.OBJExporter = function () {};
 
- THREE.OBJExporter.prototype = {
+THREE.OBJExporter.prototype = {
 
- 	constructor: THREE.OBJExporter,
+	constructor: THREE.OBJExporter,
 
- 	parse: function ( object ) {
+	parse: function ( object ) {
 
- 		var output = '';
+		var output = '';
 
- 		var indexVertex = 0;
- 		var indexVertexUvs = 0;
- 		var indexNormals = 0;
+		var indexVertex = 0;
+		var indexVertexUvs = 0;
+		var indexNormals = 0;
 
- 		var vertex = new THREE.Vector3();
- 		var normal = new THREE.Vector3();
- 		var uv = new THREE.Vector2();
+		var vertex = new THREE.Vector3();
+		var normal = new THREE.Vector3();
+		var uv = new THREE.Vector2();
 
- 		var i, j, m, face = [];
+		var i, j, m, face = [];
 
- 		var parseMesh = function ( mesh ) {
+		var parseMesh = function ( mesh ) {
 
- 			var nbVertex = 0;
- 			var nbNormals = 0;
- 			var nbVertexUvs = 0;
+			var nbVertex = 0;
+			var nbNormals = 0;
+			var nbVertexUvs = 0;
 
- 			var geometry = mesh.geometry;
+			var geometry = mesh.geometry;
 
- 			var normalMatrixWorld = new THREE.Matrix3();
+			var normalMatrixWorld = new THREE.Matrix3();
 
- 			if ( geometry instanceof THREE.Geometry ) {
+			if ( geometry instanceof THREE.Geometry ) {
 
- 				geometry = new THREE.BufferGeometry().setFromObject( mesh );
+				geometry = new THREE.BufferGeometry().setFromObject( mesh );
 
- 			}
+			}
 
- 			if ( geometry instanceof THREE.BufferGeometry ) {
+			if ( geometry instanceof THREE.BufferGeometry ) {
 
- 				// shortcuts
- 				var vertices = geometry.getAttribute( 'position' );
- 				var normals = geometry.getAttribute( 'normal' );
- 				var uvs = geometry.getAttribute( 'uv' );
- 				var indices = geometry.getIndex();
+				// shortcuts
+				var vertices = geometry.getAttribute( 'position' );
+				var normals = geometry.getAttribute( 'normal' );
+				var uvs = geometry.getAttribute( 'uv' );
+				var indices = geometry.getIndex();
 
- 				// name of the mesh object
- 				output += 'o ' + mesh.name + '\n';
+				// name of the mesh object
+				output += 'o ' + mesh.name + '\n';
 
- 				// vertices
+				// vertices
 
- 				if( vertices !== undefined ) {
+				if( vertices !== undefined ) {
 
- 					for ( i = 0; i < vertices.count ; i ++, nbVertex++ ) {
+					for ( i = 0; i < vertices.count ; i ++, nbVertex++ ) {
 
- 						vertex.x = vertices.getX( i );
- 						vertex.y = vertices.getY( i );
- 						vertex.z = vertices.getZ( i );
+						vertex.x = vertices.getX( i );
+						vertex.y = vertices.getY( i );
+						vertex.z = vertices.getZ( i );
 
- 						// transfrom the vertex to world space
- 						vertex.applyMatrix4( mesh.matrixWorld );
+						// transfrom the vertex to world space
+						vertex.applyMatrix4( mesh.matrixWorld );
 
- 						// transform the vertex to export format
- 						output += 'v ' + vertex.x + ' ' + vertex.y + ' ' + vertex.z + '\n';
+						// transform the vertex to export format
+						output += 'v ' + vertex.x + ' ' + vertex.y + ' ' + vertex.z + '\n';
 
- 					}
+					}
 
- 				}
+				}
 
- 				// uvs
+				// uvs
 
- 				if( uvs !== undefined ) {
+				if( uvs !== undefined ) {
 
- 					for ( i = 0; i < uvs.count ; i ++, nbVertexUvs++ ) {
+					for ( i = 0; i < uvs.count ; i ++, nbVertexUvs++ ) {
 
- 						uv.x = uvs.getX( i );
- 						uv.y = uvs.getY( i );
+						uv.x = uvs.getX( i );
+						uv.y = uvs.getY( i );
 
- 						// transform the uv to export format
- 						output += 'vt ' + uv.x + ' ' + uv.y + '\n';
+						// transform the uv to export format
+						output += 'vt ' + uv.x + ' ' + uv.y + '\n';
 
- 					}
+					}
 
- 				}
+				}
 
- 				// normals
+				// normals
 
- 				if( normals !== undefined ) {
+				if( normals !== undefined ) {
 
- 					normalMatrixWorld.getNormalMatrix( mesh.matrixWorld );
+					normalMatrixWorld.getNormalMatrix( mesh.matrixWorld );
 
- 					for ( i = 0; i < normals.count ; i ++, nbNormals++ ) {
+					for ( i = 0; i < normals.count ; i ++, nbNormals++ ) {
 
- 						normal.x = normals.getX( i );
- 						normal.y = normals.getY( i );
- 						normal.z = normals.getZ( i );
+						normal.x = normals.getX( i );
+						normal.y = normals.getY( i );
+						normal.z = normals.getZ( i );
 
- 						// transfrom the normal to world space
- 						normal.applyMatrix3( normalMatrixWorld );
+						// transfrom the normal to world space
+						normal.applyMatrix3( normalMatrixWorld );
 
- 						// transform the normal to export format
- 						output += 'vn ' + normal.x + ' ' + normal.y + ' ' + normal.z + '\n';
+						// transform the normal to export format
+						output += 'vn ' + normal.x + ' ' + normal.y + ' ' + normal.z + '\n';
 
- 					}
+					}
 
- 				}
+				}
 
- 				// faces
+				// faces
 
- 				if( indices !== null ) {
+				if( indices !== null ) {
 
- 					for ( i = 0; i < indices.count ; i += 3 ) {
+					for ( i = 0; i < indices.count ; i += 3 ) {
 
- 						for( m = 0; m < 3; m ++ ){
+						for( m = 0; m < 3; m ++ ){
 
- 							j = indices.getX( i + m ) + 1;
+							j = indices.getX( i + m ) + 1;
 
- 							face[ m ] = ( indexVertex + j ) + '/' + ( uvs ? ( indexVertexUvs + j ) : '' ) + '/' + ( indexNormals + j );
+							face[ m ] = ( indexVertex + j ) + '/' + ( uvs ? ( indexVertexUvs + j ) : '' ) + '/' + ( indexNormals + j );
 
- 						}
+						}
 
- 						// transform the face to export format
- 						output += 'f ' + face.join( ' ' ) + "\n";
+						// transform the face to export format
+						output += 'f ' + face.join( ' ' ) + "\n";
 
- 					}
+					}
 
- 				} else {
+				} else {
 
- 					for ( i = 0; i < vertices.count ; i += 3 ) {
+					for ( i = 0; i < vertices.count ; i += 3 ) {
 
- 						for( m = 0; m < 3; m ++ ){
+						for( m = 0; m < 3; m ++ ){
 
- 							j = i + m + 1;
+							j = i + m + 1;
 
- 							face[ m ] = ( indexVertex + j ) + '/' + ( uvs ? ( indexVertexUvs + j ) : '' ) + '/' + ( indexNormals + j );
+							face[ m ] = ( indexVertex + j ) + '/' + ( uvs ? ( indexVertexUvs + j ) : '' ) + '/' + ( indexNormals + j );
 
- 						}
+						}
 
- 						// transform the face to export format
- 						output += 'f ' + face.join( ' ' ) + "\n";
+						// transform the face to export format
+						output += 'f ' + face.join( ' ' ) + "\n";
 
- 					}
+					}
 
- 				}
+				}
 
- 			} else {
+			} else {
 
- 				console.warn( 'THREE.OBJExporter.parseMesh(): geometry type unsupported', geometry );
+				console.warn( 'THREE.OBJExporter.parseMesh(): geometry type unsupported', geometry );
 
- 			}
+			}
 
- 			// update index
- 			indexVertex += nbVertex;
- 			indexVertexUvs += nbVertexUvs;
- 			indexNormals += nbNormals;
+			// update index
+			indexVertex += nbVertex;
+			indexVertexUvs += nbVertexUvs;
+			indexNormals += nbNormals;
 
- 		};
+		};
 
- 		var parseLine = function( line ) {
+		var parseLine = function( line ) {
 
- 			var geometry = line.geometry;
- 			var type = line.type;
+			var geometry = line.geometry;
+			var type = line.type;
 
- 			if ( geometry instanceof THREE.Geometry ) {
+			if ( geometry instanceof THREE.Geometry ) {
 
- 				geometry = new THREE.BufferGeometry().setFromObject( line );
+				geometry = new THREE.BufferGeometry().setFromObject( line );
 
- 			}
+			}
 
- 			if ( geometry instanceof THREE.BufferGeometry ) {
+			if ( geometry instanceof THREE.BufferGeometry ) {
 
- 				// shortcuts
- 				var vertices = geometry.getAttribute( 'position' );
- 				var indices = geometry.getIndex();
+				// shortcuts
+				var vertices = geometry.getAttribute( 'position' );
+				var indices = geometry.getIndex();
 
- 				// name of the line object
- 				output += 'o ' + line.name + '\n';
+				// name of the line object
+				output += 'o ' + line.name + '\n';
 
- 				if( vertices !== undefined ) {
+				if( vertices !== undefined ) {
 
- 					for ( i = 0; i < vertices.count ; i ++ ) {
+					for ( i = 0; i < vertices.count ; i ++ ) {
 
- 						vertex.x = vertices.getX( i );
- 						vertex.y = vertices.getY( i );
- 						vertex.z = vertices.getZ( i );
+						vertex.x = vertices.getX( i );
+						vertex.y = vertices.getY( i );
+						vertex.z = vertices.getZ( i );
 
- 						// transfrom the vertex to world space
- 						vertex.applyMatrix4( line.matrixWorld );
+						// transfrom the vertex to world space
+						vertex.applyMatrix4( line.matrixWorld );
 
- 						// transform the vertex to export format
- 						output += 'v ' + vertex.x + ' ' + vertex.y + ' ' + vertex.z + '\n';
+						// transform the vertex to export format
+						output += 'v ' + vertex.x + ' ' + vertex.y + ' ' + vertex.z + '\n';
 
- 					}
+					}
 
- 				}
+				}
 
- 				if ( type === 'Line' ) {
+				if ( type === 'Line' ) {
 
- 					output += 'l ';
+					output += 'l ';
 
- 					for ( j = 1; j <= vertices.count; j++ ) {
+					for ( j = 1; j <= vertices.count; j++ ) {
 
- 						output += j + ' ';
+						output += j + ' ';
 
- 					}
+					}
 
- 					output += '\n';
+					output += '\n';
 
- 				}
+				}
 
- 				if ( type === 'LineSegments' ) {
+				if ( type === 'LineSegments' ) {
 
- 					for ( j = 1, k = j + 1; j < vertices.count; j += 2, k = j + 1 ) {
+					for ( j = 1, k = j + 1; j < vertices.count; j += 2, k = j + 1 ) {
 
- 						output += 'l ' + j + ' ' + k + '\n';
+						output += 'l ' + j + ' ' + k + '\n';
 
- 					}
+					}
 
- 				}
+				}
 
- 			} else {
+			} else {
 
- 				console.warn('THREE.OBJExporter.parseLine(): geometry type unsupported', geometry );
+				console.warn('THREE.OBJExporter.parseLine(): geometry type unsupported', geometry );
 
- 			}
+			}
 
- 		};
+		};
 
- 		object.traverse( function ( child ) {
+		object.traverse( function ( child ) {
 
- 			if ( child instanceof THREE.Mesh ) {
+			if ( child instanceof THREE.Mesh ) {
 
- 				parseMesh( child );
+				parseMesh( child );
 
- 			}
+			}
 
- 			if ( child instanceof THREE.Line ) {
+			if ( child instanceof THREE.Line ) {
 
- 				parseLine( child );
+				parseLine( child );
 
- 			}
+			}
 
- 		} );
+		} );
 
- 		return output;
+		return output;
 
- 	}
+	}
 
- };
+};