@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
42 lines (41 loc) • 1.32 kB
JavaScript
;
import { CADSopNode } from "./_BaseCAD";
import { exporterSopFileName } from "./_BaseExporter";
import { InputCloneMode } from "../../poly/InputCloneMode";
import { downloadBlob } from "../../../core/BlobUtils";
export class CADExporterSopNode extends CADSopNode {
initializeNode() {
this.io.inputs.setCount(1);
this.io.inputs.initInputsClonedState(InputCloneMode.NEVER);
}
async cook(inputCoreGroups) {
this.setCoreGroup(inputCoreGroups[0]);
}
static PARAM_CALLBACK_download(node) {
node._paramCallbackDownload();
}
async fileName() {
return await exporterSopFileName(this.p.fileName, this.fileExtension());
}
async _paramCallbackDownload() {
const blob = await this.createBlob();
const fileName = await this.fileName();
downloadBlob(blob, fileName);
}
async _prepareScene() {
const container = await this.compute();
const coreGroup = container.coreContent();
if (!coreGroup) {
console.error("input invalid");
return;
}
const cadObjects = coreGroup.cadObjects();
if (!cadObjects) {
return;
}
return { cadObjects };
}
// protected async _handleResult(result: any, objects: Object3D[], resolve: (blob: Blob) => void) {
// return await exporterSopHandleResult(result, objects, resolve);
// }
}