{ OrbitControls } from 'three/addons/controls/OrbitControls.js';

			const twoPi = Math.PI * 2;

			class CustomSinCurve extends Curve {

				constructor( scale = 1 ) {

					super();

					this.scale = scale;

				}

				getPoint( t, optionalTarget = new Vector3() ) {

					const tx = t * 3 - 1.5;
					const ty = Math.sin( 2 * Math.PI * t );
					const tz = 0;

					return optionalTarget.set( tx, ty, tz ).multiplyScalar( this.scale );

				}

			}

			function updateGroupGeometry( mesh, geometry ) {

				m