@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
39 lines (36 loc) • 1.48 kB
text/typescript
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> {}