export works, todo: link/button-issue
This commit is contained in:
parent
24f1336c41
commit
49cb5e57df
2 changed files with 23 additions and 20 deletions
|
|
@ -117,7 +117,7 @@ $editor = (el,opts) => new Proxy({
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
document.addEventListener('frontend.export', (e) => this.updateOriginalScene(e.detail) )
|
xrf.addEventListener('export', (e) => this.updateOriginalScene(e) )
|
||||||
xrf.addEventListener('href', (opts) => {
|
xrf.addEventListener('href', (opts) => {
|
||||||
if( this.selecting || this.editing ) return opts.promise().reject("$editor should block hrefs while editing") // never resolve (block hrefs from interfering)
|
if( this.selecting || this.editing ) return opts.promise().reject("$editor should block hrefs while editing") // never resolve (block hrefs from interfering)
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -239,22 +239,24 @@ window.frontend = (opts) => new Proxy({
|
||||||
},
|
},
|
||||||
|
|
||||||
download(){
|
download(){
|
||||||
// setup exporters
|
|
||||||
let defaultExporter = THREE.GLTFExporter
|
|
||||||
xrf.loaders['gltf'].exporter = defaultExporter
|
|
||||||
xrf.loaders['glb'].exporter = defaultExporter
|
|
||||||
|
|
||||||
function download(dataurl, filename) {
|
function download(dataurl, filename) {
|
||||||
var a = document.createElement("a");
|
var a = document.createElement("a");
|
||||||
a.href = dataurl;
|
a.href = URL.createObjectURL( new Blob([dataurl]) );
|
||||||
a.setAttribute("download", filename);
|
a.setAttribute("download", filename);
|
||||||
a.click();
|
a.click();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
function exportScene(model,ext){
|
function exportScene(model,ext,file){
|
||||||
const exporter = new (xrf.loaders[ext].exporter || defaultExporter)
|
|
||||||
document.dispatchEvent( new CustomEvent('frontend.export',{detail:{ scene: model.scene,ext}}) )
|
document.dispatchEvent( new CustomEvent('frontend.export',{detail:{ scene: model.scene,ext}}) )
|
||||||
|
xrf.emit('export', {scene: model.scene, ext})
|
||||||
|
.then( () => {
|
||||||
|
// setup exporters
|
||||||
|
let defaultExporter = THREE.GLTFExporter
|
||||||
|
xrf.loaders['gltf'].exporter = defaultExporter
|
||||||
|
xrf.loaders['glb'].exporter = defaultExporter
|
||||||
|
const exporter = new THREE.GLTFExporter()
|
||||||
exporter.parse(
|
exporter.parse(
|
||||||
model.scene,
|
model.scene,
|
||||||
function ( glb ) { download(glb, `${file}`) }, // ready
|
function ( glb ) { download(glb, `${file}`) }, // ready
|
||||||
|
|
@ -267,6 +269,7 @@ window.frontend = (opts) => new Proxy({
|
||||||
trs:true
|
trs:true
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// load original scene and overwrite with updates
|
// load original scene and overwrite with updates
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue