|
@@ -472,7 +472,7 @@ var Loader = function ( editor ) {
|
|
|
|
|
|
var zip = new JSZip( contents );
|
|
var zip = new JSZip( contents );
|
|
|
|
|
|
- // BLOCKS
|
|
|
|
|
|
+ // Poly
|
|
|
|
|
|
if ( zip.files[ 'model.obj' ] && zip.files[ 'materials.mtl' ] ) {
|
|
if ( zip.files[ 'model.obj' ] && zip.files[ 'materials.mtl' ] ) {
|
|
|
|
|
|
@@ -482,6 +482,52 @@ var Loader = function ( editor ) {
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ //
|
|
|
|
+
|
|
|
|
+ zip.filter( function ( path, file ) {
|
|
|
|
+
|
|
|
|
+ // GLB
|
|
|
|
+
|
|
|
|
+ if ( file.name.search( /\.glb$/i ) > - 1 ) {
|
|
|
|
+
|
|
|
|
+ var loader = new THREE.GLTFLoader( manager );
|
|
|
|
+ loader.parse( file.asArrayBuffer(), '', function ( result ) {
|
|
|
|
+
|
|
|
|
+ editor.execute( new AddObjectCommand( result.scene ) );
|
|
|
|
+
|
|
|
|
+ } );
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // GLTF
|
|
|
|
+
|
|
|
|
+ if ( file.name.search( /\.gltf$/i ) > - 1 ) {
|
|
|
|
+
|
|
|
|
+ var manager = new THREE.LoadingManager();
|
|
|
|
+ manager.setURLModifier( function ( url ) {
|
|
|
|
+
|
|
|
|
+ var file = zip.files[ url ];
|
|
|
|
+
|
|
|
|
+ if ( file ) {
|
|
|
|
+
|
|
|
|
+ var blob = new Blob( [ file.asArrayBuffer() ], { type: 'application/octet-stream' } );
|
|
|
|
+ return URL.createObjectURL( blob );
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ } );
|
|
|
|
+
|
|
|
|
+ var loader = new THREE.GLTFLoader( manager );
|
|
|
|
+ loader.parse( file.asText(), '', function ( result ) {
|
|
|
|
+
|
|
|
|
+ editor.execute( new AddObjectCommand( result.scene ) );
|
|
|
|
+
|
|
|
|
+ } );
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ } );
|
|
|
|
+
|
|
}, false );
|
|
}, false );
|
|
reader.readAsBinaryString( file );
|
|
reader.readAsBinaryString( file );
|
|
|
|
|