@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
28 lines (25 loc) • 838 B
text/typescript
import {BaseSopOperation} from './_Base';
import {CoreGroup} from '../../../core/geometry/Group';
import {createCapsuleGeometry} from '../../../core/player/CapsuleGeometry';
import {DefaultOperationParams} from '../../../core/operations/_Base';
import {Vector3} from 'three';
interface CapsuleSopParams extends DefaultOperationParams {
radius: number;
height: number;
divisions: number;
center: Vector3;
}
export class CapsuleSopOperation extends BaseSopOperation {
static override readonly DEFAULT_PARAMS: CapsuleSopParams = {
radius: 0.2,
height: 0.6,
divisions: 2,
center: new Vector3(0, 0, 0),
};
static override type(): Readonly<'capsule'> {
return 'capsule';
}
override cook(input_contents: CoreGroup[], params: CapsuleSopParams) {
return this.createCoreGroupFromGeometry(createCapsuleGeometry(params));
}
}