UNPKG

@polygonjs/polygonjs

Version:

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

64 lines (58 loc) 1.83 kB
// /** // * Creates an SDF tube. // * // * // */ // import {SDFSopNode} from './_BaseSDF'; // import {NodeParamsConfig, ParamConfig} from '../utils/params/ParamsConfig'; // import {SopType} from '../../poly/registers/nodes/types/Sop'; // import {step} from '../../../core/geometry/modules/sdf/SDFConstant'; // import {SDFLoader} from '../../../core/geometry/modules/sdf/SDFLoader'; // import {Number3} from '../../../types/GlobalTypes'; // const _centerN3: Number3 = [0, 0, 0]; // class SDFTubeSopParamsConfig extends NodeParamsConfig { // /** @param top radius */ // radiusTop = ParamConfig.FLOAT(1, { // range: [0, 1], // rangeLocked: [true, false], // step, // }); // /** @param bottom radius */ // radiusBottom = ParamConfig.FLOAT(1, { // range: [0, 1], // rangeLocked: [true, false], // step, // }); // /** @param tube height */ // height = ParamConfig.FLOAT(1, { // range: [0, 1], // rangeLocked: [true, false], // step, // }); // /** @param number of segments in the radial direction */ // segmentsRadial = ParamConfig.INTEGER(32, { // range: [3, 128], // rangeLocked: [true, false], // }); // /** @param center */ // center = ParamConfig.VECTOR3([0, 0, 0]); // } // const ParamsConfig = new SDFTubeSopParamsConfig(); // export class SDFTubeSopNode extends SDFSopNode<SDFTubeSopParamsConfig> { // override readonly paramsConfig = ParamsConfig; // static override type() { // return SopType.SDF_TUBE; // } // override async cook() { // const manifold = await SDFLoader.core(); // this.pv.center.toArray(_centerN3); // const geometry = manifold.cylinder( // this.pv.height, // this.pv.radiusBottom, // this.pv.radiusTop, // this.pv.segmentsRadial // ); // const centered = geometry.translate(_centerN3); // this.setSDFGeometry(centered); // } // }