Paths

Shapes3D has a number of classes to define the path a Tube or Extrusion takes through 3D space. They are -

Class Description
BCurve2D A Bezier Curve in the XY plane with 2 or more control points. The Z attribute of the control points is ignored.
BCurve3D A Bezier Curve in the 3D space with 2 or more control points.
BSpline A curve in 3D space that passes through 2 or more user defined vertices [x,y,z]. The spline is made up of a series of cubic Bezier curves between each successive pair or vetices.
Linear A straight line through 3D space. The user specifies the start and end of the path.
Ring A 360° ring round the Y axis in the XZ plane. The user specfies the x and z radii so the ring can be circular or elliptical.
Spiral Imagine a spiral staircase wound round the Y axis and you have it. The user can specfy the x and z radii, the pitch between turns and the number of turns.
Lissajous I added this one for a bit of fun, but it shows how quite complicated paths can be used.

All the these classes implement the Path interface. Users wishing to create their own path classes should consider extending the AbstractPath class which provides implementations for some of the more difficult maths.