mirror of
https://github.com/xibyte/jsketcher
synced 2025-12-06 16:33:15 +01:00
46 lines
No EOL
1.4 KiB
JavaScript
46 lines
No EOL
1.4 KiB
JavaScript
import {STLExporter} from './stl/stlExporter';
|
|
import exportTextData from 'gems/exportTextData';
|
|
|
|
export const BundleName = "@Export";
|
|
|
|
export function activate(ctx) {
|
|
|
|
function toStlAsciiString() {
|
|
const exporter = new STLExporter();
|
|
const views = ctx.services.cadRegistry.shells.map(mShell => mShell.ext.view).filter(m => !!m);
|
|
return exporter.parse( views );
|
|
}
|
|
|
|
function stlAscii() {
|
|
exportTextData(toStlAsciiString(), ctx.projectService.id + ".stl");
|
|
}
|
|
|
|
function imagePng() {
|
|
const auxVisible = ctx.services.cadScene.auxGroup.visible;
|
|
ctx.services.cadScene.auxGroup.visible = false;
|
|
const renderer = ctx.services.viewer.sceneSetup.renderer;
|
|
const clearAlpha = renderer.getClearAlpha();
|
|
renderer.setClearAlpha(0);
|
|
renderer.preserveDrawingBuffer = true;
|
|
ctx.services.viewer.sceneSetup.render();
|
|
|
|
const link = document.getElementById("downloader");
|
|
link.href = renderer.domElement.toDataURL('image/png');
|
|
link.download = ctx.projectService.id + "-snapshot.png";
|
|
link.click();
|
|
|
|
renderer.preserveDrawingBuffer = false;
|
|
ctx.services.cadScene.auxGroup.visible = auxVisible;
|
|
renderer.setClearAlpha(0);
|
|
renderer.setClearAlpha(clearAlpha);
|
|
ctx.services.viewer.sceneSetup.render();
|
|
}
|
|
|
|
function nativeFormat() {
|
|
ctx.services.projectManager.exportProject(ctx.projectService.id);
|
|
}
|
|
|
|
ctx.services.export = {
|
|
stlAscii, imagePng, toStlAsciiString, nativeFormat
|
|
};
|
|
} |