A CubicCurveseg is any curve that can be completely described by four 4-valued basis vectors, one for each dimension in three-space, and one for the homogeneous coordinate. This includes Beziers, Hermites, and NURBS.
This class encapsulates a single curve segment of the cubic curve. Normally, when we think of Bezier and Hermite curves, we think of a piecewise collection of such segments.
Although this class includes methods such as hermite_basis() and nurbs_basis(), to generate a Hermite and NURBS curve segment, respectively, only the final basis vectors are stored: the product of the basis matrix of the corresponding curve type, and its geometry vectors. This is the minimum information needed to evaluate the curve. However, the individual CV’s that were used to compute these basis vectors are not retained; this might be handled in a subclass (for instance,