UNPKG

@polygonjs/polygonjs

Version:

node-based WebGL 3D engine https://polygonjs.com

55 lines (54 loc) 1.89 kB
"use strict"; import { TypedSopNode } from "./_Base"; import { CadGeometryType, cadGeometryTypeFromShape } from "../../../core/geometry/modules/cad/CadCommon"; import { CadObject } from "../../../core/geometry/modules/cad/CadObject"; import { CoreGroup } from "../../../core/geometry/Group"; import { CoreObjectType } from "../../../core/geometry/ObjectContent"; import { CadLoaderSync } from "../../../core/geometry/modules/cad/CadLoaderSync"; import { cadProcessError } from "../../../core/geometry/modules/cad/CadExceptionHandler"; import { ModuleName } from "../../poly/registers/modules/Common"; export class CADSopNode extends TypedSopNode { dataType() { return CoreObjectType.CAD; } requiredModules() { return [ModuleName.CAD]; } setCADGeom2dCurve(curve) { const objects = [new CadObject(curve, CadGeometryType.CURVE_2D)]; this._setContainerCadObjects(objects); } setCADShape(shape) { const oc = CadLoaderSync.oc(); const type = cadGeometryTypeFromShape(oc, shape) || CadGeometryType.VERTEX; const objects = [new CadObject(shape, type)]; this._setContainerCadObjects(objects); } setCADShapes(shapes) { const oc = CadLoaderSync.oc(); const objects = shapes.map( (shape, i) => new CadObject(shape, cadGeometryTypeFromShape(oc, shape) || CadGeometryType.VERTEX) ); this._setContainerCadObjects(objects); } setCADObjects(cadObjects) { this._setContainerCadObjects(cadObjects); } setCADObject(cadObject) { this._setContainerCadObjects([cadObject]); } _setContainerCadObjects(objects) { const coreGroup = this.containerController.container().coreContent() || new CoreGroup(); coreGroup.setAllObjects(objects); this._setContainer(coreGroup); } // error processing processError(e) { return cadProcessError(e); } } export class BaseCADSopNodeClass extends CADSopNode { }