UNPKG

@polygonjs/polygonjs

Version:

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

34 lines (30 loc) 1.11 kB
import {BaseSopOperation} from './_Base'; import {GridHelper} from 'three'; import {CoreGroup} from '../../../core/geometry/Group'; import {InputCloneMode} from '../../poly/InputCloneMode'; import {Color} from 'three'; import {DefaultOperationParams} from '../../../core/operations/_Base'; interface PlaneHelperSopParams extends DefaultOperationParams { size: number; colorCenterLine: Color; colorGrid: Color; } export class PlaneHelperSopOperation extends BaseSopOperation { static override readonly DEFAULT_PARAMS: PlaneHelperSopParams = { size: 10, colorCenterLine: new Color(0, 0, 1), colorGrid: new Color(1, 1, 1), }; static override readonly INPUT_CLONED_STATE = InputCloneMode.NEVER; static override type(): Readonly<'planeHelper'> { return 'planeHelper'; } override cook(input_contents: CoreGroup[], params: PlaneHelperSopParams) { const helper = new GridHelper(params.size, params.size, params.colorCenterLine, params.colorGrid); helper.matrixAutoUpdate = false; if (this._node) { helper.name = this._node.name(); } return this.createCoreGroupFromObjects([helper]); } }