Browse Source

Editor: Support for blocks .zip

Mr.doob 8 years ago
parent
commit
6cfda9b71b
3 changed files with 26 additions and 0 deletions
  1. 1 0
      editor/index.html
  2. 23 0
      editor/js/Loader.js
  3. 2 0
      examples/js/loaders/OBJLoader.js

+ 1 - 0
editor/index.html

@@ -27,6 +27,7 @@
 		<script src="../examples/js/loaders/KMZLoader.js"></script>
 		<script src="../examples/js/loaders/MD2Loader.js"></script>
 		<script src="../examples/js/loaders/OBJLoader.js"></script>
+		<script src="../examples/js/loaders/MTLLoader.js"></script>
 		<script src="../examples/js/loaders/PlayCanvasLoader.js"></script>
 		<script src="../examples/js/loaders/PLYLoader.js"></script>
 		<script src="../examples/js/loaders/STLLoader.js"></script>

+ 23 - 0
editor/js/Loader.js

@@ -428,6 +428,29 @@ var Loader = function ( editor ) {
 
 				break;
 
+			case 'zip':
+
+				reader.addEventListener( 'load', function ( event ) {
+
+					var contents = event.target.result;
+
+					var zip = new JSZip( contents );
+
+					// BLOCKS
+
+					if ( zip.files[ 'model.obj' ] && zip.files[ 'materials.mtl' ] ) {
+
+						var materials = new THREE.MTLLoader().parse( zip.file( 'materials.mtl' ).asText() );
+						var object = new THREE.OBJLoader().setMaterials( materials ).parse( zip.file( 'model.obj' ).asText() );
+						editor.execute( new AddObjectCommand( object ) );
+
+					}
+
+				}, false );
+				reader.readAsBinaryString( file );
+
+				break;
+
 			default:
 
 				alert( 'Unsupported file format (' + extension +  ').' );

+ 2 - 0
examples/js/loaders/OBJLoader.js

@@ -400,6 +400,8 @@ THREE.OBJLoader = ( function () {
 
 			this.materials = materials;
 
+			return this;
+
 		},
 
 		parse: function ( text ) {