function updateSplineTexture( texture, splineCurve, offset = 0 ) {

		const numberOfPoints = Math.floor( TEXTURE_WIDTH * ( TEXTURE_HEIGHT / 4 ) );
		splineCurve.arcLengthDivisions = numberOfPoints / 2;
		splineCurve.updateArcLengths();
		const points = splineCurve.getSpacedPoints( numberOfPoints );
		const frenetFrames = splineCurve.computeFrenetFrames( numberOfPoints, true );

		for ( let i = 0; i < numberOfPoints; i ++ ) {

			const rowOffset = Math.floor( i / TEXTURE_WIDTH );
			const rowIndex = i % TEXTURE_WIDTH;
			let pt = points[ i ];
			setTextureValue( texture, rowIndex, pt.x, pt.y, pt.z, 0 + rowOffset + TEXTURE_HEIGHT * offset );
			pt = frenetFrames.tangents[ i ];
			setTextureValue( texture, rowIndex, pt.x, pt.y, pt.z, 1 + rowOffset + TEXTURE_HEIGHT * offset );
			pt = frenetFrames.normals[ i ];
			setTextureValue( texture, rowIndex, pt.x, pt.y, pt.z, 2 + rowOffset + TEXTURE_HEIGHT * offset );
			pt = frenetFrames.binormals[ i ];
			setTextureValue( texture, rowIndex, pt.x, pt.y, pt.z, 3 + rowOffset + TEXTURE_HEIGHT * offset );

		}

		texture.needsUpdate = true;

	}
Write the curve description to the data texture

@param { THREE.DataTexture } texture The THREE.DataTexture to write to
@param { Curve } splineCurve The curve to describe
@param { number } offset Which curve slot to write to