UNPKG

@polygonjs/polygonjs

Version:

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

41 lines (40 loc) 1.26 kB
"use strict"; import { TetSopNode } from "./_BaseTet"; import { NodeParamsConfig } from "../utils/params/ParamsConfig"; import { isArray } from "../../../core/Type"; import { SopType } from "../../poly/registers/nodes/types/Sop"; import { SOPTetTesselationParamConfig } from "../../../core/geometry/modules/tet/utils/TesselationParamsConfig"; class TetTriangulateSopParamsConfig extends SOPTetTesselationParamConfig(NodeParamsConfig) { } const ParamsConfig = new TetTriangulateSopParamsConfig(); export class TetTriangulateSopNode extends TetSopNode { constructor() { super(...arguments); this.paramsConfig = ParamsConfig; } static type() { return SopType.TET_TRIANGULATE; } initializeNode() { this.io.inputs.setCount(1); } async cook(inputCoreGroups) { const tetObjects = inputCoreGroups[0].tetObjects(); if (tetObjects) { const newObjects = []; for (const tetObject of tetObjects) { const objects = tetObject.toObject3D(this.pv); if (objects) { if (isArray(objects)) { newObjects.push(...objects); } else { newObjects.push(objects); } } } this.setObjects(newObjects); } else { this.setObjects([]); } } }