2021-03-07 06:14:22 +08:00
|
|
|
import { CylinderGeometry } from 'three';
|
2020-09-28 21:36:22 +08:00
|
|
|
import Geometry from './Geometry.js';
|
|
|
|
|
2021-03-16 03:01:08 +08:00
|
|
|
export const props = {
|
|
|
|
radiusTop: { type: Number, default: 1 },
|
|
|
|
radiusBottom: { type: Number, default: 1 },
|
|
|
|
height: { type: Number, default: 1 },
|
|
|
|
radialSegments: { type: Number, default: 8 },
|
|
|
|
heightSegments: { type: Number, default: 1 },
|
|
|
|
openEnded: { type: Boolean, default: false },
|
|
|
|
thetaStart: { type: Number, default: 0 },
|
|
|
|
thetaLength: { type: Number, default: Math.PI * 2 },
|
|
|
|
};
|
|
|
|
|
|
|
|
export function createGeometry(comp) {
|
|
|
|
return new CylinderGeometry(comp.radiusTop, comp.radiusBottom, comp.height, comp.radialSegments, comp.heightSegments, comp.openEnded, comp.thetaStart, comp.thetaLength);
|
|
|
|
};
|
|
|
|
|
2020-09-28 21:36:22 +08:00
|
|
|
export default {
|
|
|
|
extends: Geometry,
|
2021-03-16 03:01:08 +08:00
|
|
|
props,
|
2020-10-03 17:00:37 +08:00
|
|
|
methods: {
|
|
|
|
createGeometry() {
|
2021-03-16 03:01:08 +08:00
|
|
|
this.geometry = createGeometry(this);
|
2020-10-03 17:00:37 +08:00
|
|
|
},
|
2020-09-28 21:36:22 +08:00
|
|
|
},
|
|
|
|
};
|