@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
34 lines (30 loc) • 1.11 kB
text/typescript
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]);
}
}