UNPKG

@polygonjs/polygonjs

Version:

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

31 lines (30 loc) 1.01 kB
"use strict"; import { BaseSopOperation } from "./_Base"; import { Vector3, TorusKnotGeometry } from "three"; import { InputCloneMode } from "../../../engine/poly/InputCloneMode"; export class TorusKnotSopOperation extends BaseSopOperation { static type() { return "torusKnot"; } cook(input_contents, params) { const radius = params.radius; const radiusTube = params.radiusTube; const segmentsRadial = params.segmentsRadial; const segmentsTube = params.segmentsTube; const p = params.p; const q = params.q; const geometry = new TorusKnotGeometry(radius, radiusTube, segmentsRadial, segmentsTube, p, q); geometry.translate(params.center.x, params.center.y, params.center.z); return this.createCoreGroupFromGeometry(geometry); } } TorusKnotSopOperation.DEFAULT_PARAMS = { radius: 1, radiusTube: 0.25, segmentsRadial: 128, segmentsTube: 8, p: 2, q: 3, center: new Vector3(0, 0, 0) }; TorusKnotSopOperation.INPUT_CLONED_STATE = InputCloneMode.FROM_NODE;