@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
55 lines (54 loc) • 1.89 kB
JavaScript
;
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 {
}