UNPKG

@polygonjs/polygonjs

Version:

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

39 lines (36 loc) 1.48 kB
import {NodeParamsConfig} from '../utils/params/ParamsConfig'; import {TypedSopNode} from './_Base'; import type {TetGeometry} from '../../../core/geometry/modules/tet/TetGeometry'; import {TetObject} from '../../../core/geometry/modules/tet/TetObject'; import {CoreGroup} from '../../../core/geometry/Group'; import {CoreObjectType} from '../../../core/geometry/ObjectContent'; import {ModuleName} from '../../poly/registers/modules/Common'; export class TetSopNode<K extends NodeParamsConfig> extends TypedSopNode<K> { override dataType(): string { return CoreObjectType.TET; } override requiredModules() { return [ModuleName.TET]; } setTetGeometry(geometry: TetGeometry) { const objects = [new TetObject(geometry)]; this._setContainerTetObjects(objects); } setTetGeometries(geometries: TetGeometry[]) { const objects = geometries.map((g) => new TetObject(g)); this._setContainerTetObjects(objects); } setTetObjects(tetObjects: TetObject[]) { this._setContainerTetObjects(tetObjects); } setTetObject(tetObject: TetObject) { this._setContainerTetObjects([tetObject]); } protected _setContainerTetObjects(objects: TetObject[] /*, message: MESSAGE*/) { const coreGroup = this.containerController.container().coreContent() || new CoreGroup(); coreGroup.setAllObjects(objects); this._setContainer(coreGroup); } } export type BaseTetSopNodeType = TetSopNode<NodeParamsConfig>; export class BaseTetSopNodeClass extends TetSopNode<NodeParamsConfig> {}