diff --git a/editor/js/Loader.js b/editor/js/Loader.js index e1d5c4590b2698bac4aaf6919fa389f0aa3d9c29..27951fe967d712830c8c1c0b1310aadc6fec5af2 100644 --- a/editor/js/Loader.js +++ b/editor/js/Loader.js @@ -4,6 +4,7 @@ import * as THREE from '../../build/three.module.js'; +import { ThreeMFLoader } from '../../examples/jsm/loaders/3MFLoader.js'; import { AMFLoader } from '../../examples/jsm/loaders/AMFLoader.js'; import { ColladaLoader } from '../../examples/jsm/loaders/ColladaLoader.js'; import { DRACOLoader } from '../../examples/jsm/loaders/DRACOLoader.js'; @@ -105,6 +106,20 @@ var Loader = function ( editor ) { break; + case '3mf': + + reader.addEventListener( 'load', function ( event ) { + + var loader = new ThreeMFLoader(); + var object = loader.parse( event.target.result ); + + editor.execute( new AddObjectCommand( editor, object ) ); + + }, false ); + reader.readAsArrayBuffer( file ); + + break; + case 'amf': reader.addEventListener( 'load', function ( event ) { diff --git a/editor/sw.js b/editor/sw.js index 97c343f51faa7cd0b39b5619529d883a36c41e64..1f563a2411a55be14b83baee82e43d89d72bae82 100644 --- a/editor/sw.js +++ b/editor/sw.js @@ -18,6 +18,7 @@ const assets = [ '../examples/js/libs/draco/draco_encoder.js', '../examples/js/libs/draco/draco_wasm_wrapper.js', + '../examples/jsm/loaders/3MFLoader.js', '../examples/jsm/loaders/AMFLoader.js', '../examples/jsm/loaders/ColladaLoader.js', '../examples/jsm/loaders/DRACOLoader.js',