import * as THREE from 'three'; export const calculateGeometry = (spiralHeight) => { let pointsOfCurve = []; const number = 100; for (let i = 0; i <= number; i ++) { let p = i / number; let x = Math.cos(p * 2 * Math.PI); let y = p * spiralHeight; let z = Math.sin(p * 2 * Math.PI); pointsOfCurve.push(new THREE.Vector3(x, y, z)); } let curve = new THREE.CatmullRomCurve3(pointsOfCurve); return new THREE.TubeGeometry(curve, 400, 0.1, 400, false); } export class SpiralSegment { constructor(number, height, material) { this.number = number; this.segment = new THREE.Mesh(calculateGeometry(height), material); this.segment.position.y += number * height; } getSegment() { return this.segment; } }