{
const {scene, camera, renderer} = setup()
const sides = 4;
const height = 20;
const capHeight = 5;
const radius = 10;
const middle = new THREE.CylinderGeometry(radius, radius, height, sides, 1, true);
const coneTop = new THREE.ConeGeometry(radius, capHeight, sides, 1, true);
const coneBottom = coneTop.clone();
coneTop.translate(0, height / 2 + capHeight / 2, 0);
coneBottom.rotateZ(Math.PI);
coneBottom.translate(0, -height / 2 - capHeight / 2, 0);
const geometry = new THREE.Geometry();
geometry.merge(middle);
geometry.merge(coneTop);
geometry.merge(coneBottom);
const material = new THREE.MeshNormalMaterial({ flatShading: true });
const mesh = new THREE.Mesh(geometry, material)
scene.add(mesh)
mesh.scale.set(0.5, 1, 0.5)
while (true) {
mesh.rotation.y += 0.01;
renderer.render(scene, camera);
yield renderer.domElement;
}
}