@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
20 lines (18 loc) • 630 B
text/typescript
import {Vector3} from 'three';
import {RoundedBoxGeometry} from 'three/examples/jsm/geometries/RoundedBoxGeometry';
export interface CapsuleOptions {
radius: number;
height: number;
divisions: number;
center: Vector3;
}
export function createCapsuleGeometry(capsuleOptions: CapsuleOptions) {
const {radius, height, divisions, center} = capsuleOptions;
const diameter = 2 * radius;
const bevel = radius;
const width = diameter;
const boxHeight = height;
const geometry = new RoundedBoxGeometry(width, boxHeight + diameter, width, divisions, bevel);
geometry.translate(center.x, center.y, center.z);
return geometry;
}