UNPKG

@polygonjs/polygonjs

Version:

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

43 lines (42 loc) 1.4 kB
"use strict"; import { QuadSopNode } from "./_BaseQuad"; import { NodeParamsConfig } from "../utils/params/ParamsConfig"; import { isArray } from "../../../core/Type"; import { SopType } from "../../poly/registers/nodes/types/Sop"; import { SOPQUADTesselationParamConfig } from "../../../core/geometry/modules/quad/utils/TesselationParamsConfig"; import { InputCloneMode } from "../../poly/InputCloneMode"; class QuadTriangulateSopParamsConfig extends SOPQUADTesselationParamConfig(NodeParamsConfig) { } const ParamsConfig = new QuadTriangulateSopParamsConfig(); export class QuadTriangulateSopNode extends QuadSopNode { constructor() { super(...arguments); this.paramsConfig = ParamsConfig; } static type() { return SopType.QUAD_TRIANGULATE; } initializeNode() { this.io.inputs.setCount(1); this.io.inputs.initInputsClonedState(InputCloneMode.NEVER); } async cook(inputCoreGroups) { const quadObjects = inputCoreGroups[0].quadObjects(); if (quadObjects) { const newObjects = []; for (const quadObject of quadObjects) { const objects = quadObject.toObject3D(this.pv); if (objects) { if (isArray(objects)) { newObjects.push(...objects); } else { newObjects.push(objects); } } } this.setObjects(newObjects); } else { this.setObjects([]); } } }