úÎH{E&.      !"#$%&'()*+,- =Knot vectors - multisets of points in a 1-dimensional space. .-Create a knot vector consisting of one knot. MCreate a knot vector consisting of one knot with the specified multiplicity. <Create a knot vector consisting of all the knots in a list. DCreate a knot vector consisting of all the knots and corresponding  multiplicities in a list. CReturns a list of all distinct knots in ascending order along with  their multiplicities. IReturns the number of knots (not necessarily distinct) in a knot vector. 7Returns the number of distinct knots in a knot vector. [Returns a list of all knots (not necessarily distinct) of a knot vector in ascending order IReturns a list of all distinct knots of a knot vector in ascending order LLooks up the multiplicity of a knot (which is 0 if the point is not a knot) DReturns a new knot vector with the given knot set to the specified - multiplicity and all other knots unchanged. knotDomain kts p4 return the domain of a B-spline or NURBS with knot  vector kts and degree p'. This is the subrange spanned by all  except the first and last p) knots. Outside this domain, the spline - does not have a complete basis set. De Boor's algorithm assumes that H the basis functions sum to 1, which is only true on this range, and so 3 this is also precisely the domain on which de Boor's algorithm is valid.      /012Insert one knot into a   /01234 /012/012bSpline kts cps< creates a B-spline with the given knot vector and control N points. The degree is automatically inferred as the difference between the % number of spans in the knot vector (numKnots kts - 1) and the number of  control points ( length cps). 5  JA spline is a piecewise polynomial vector-valued function. The necessary ' and sufficient instance definition is . CReturns the domain of a spline. In the case of B-splines, this is F the domain on which a spline with this degree and knot vector has a ? full basis set. In other cases, it should be no larger than  splineDomain . toBSpline+, but may be smaller. Within this domain,   should agree with  .  (not F necessarily exactly, but up to reasonable expectations of numerical  accuracy). A BezierCurve curve on 0 <= x <= 1. 6DConstruct a Bezier curve from a list of control points. The degree = of the curve is one less than the number of control points. 7+Split and rescale a Bezier curve. Given a  b and a point  t, splitBezierCurve b t creates 2 curves (b1, b2) such that (up to . reasonable numerical accuracy expectations): - evalSpline b1 x == evalSpline b (x * t) 1 evalSpline b2 (x-t) == evalSpline b (x * (1-t)) GM-Splines are B-splines normalized so that the integral of each basis ' function over the spline domain is 1. 89:; mSpline kts cps< creates a M-spline with the given knot vector and control N points. The degree is automatically inferred as the difference between the % number of spans in the knot vector (numKnots kts - 1) and the number of  control points ( length cps). ! ! ! !"DThe I-Spline basis functions are the integrals of the M-splines, or F alternatively the integrals of the B-splines normalized to the range  [0,1]F. Every I-spline basis function increases monotonically from 0 to 1, I thus it is useful as a basis for monotone functions. An I-Spline curve L is monotone if and only if every non-zero control point has the same sign. <=>?#iSpline kts cps= creates an I-spline with the given knot vector and control N points. The degree is automatically inferred as the difference between the % number of spans in the knot vector (numKnots kts - 1) and the number of  control points ( length cps). $"#$"#$"#$ %@&'(IConstructs the homogeneous-coordinates B-spline that corresponds to this  NURBS curve OConstructs the NURBS curve corresponding to a homogeneous-coordinates B-spline )GReturns the domain of a NURBS - that is, the range of parameter values L over which a spline with this degree and knot vector has a full basis set. *+,- %&'()*+,- %'&()*+,- %&'()*+,-   !"#$  !"#$A     !"#$%&'()*+,-./01234567  8$9:;&<)=>?,@AB/C splines-0.1Math.Spline.KnotsMath.Spline.BSplineMath.Spline.ClassMath.Spline.BezierCurveMath.Spline.MSplineMath.Spline.ISpline Math.NURBSMath.Spline.BSpline.Internal Math.SplineKnotsknot multipleKnotmkKnotsfromListtoListnumKnotsnumDistinctKnotsknots distinctKnotsknotMultiplicitysetKnotMultiplicity knotDomainBSpline evalBSpline insertKnotbSplinedifferentiateBSplineintegrateBSpline splitBSpline ControlPoints controlPointsSpline splineDomain evalSpline splineDegree knotVector toBSpline BezierCurve bezierCurvesplitBezierCurveMSplinemSpline toMSplineISplineiSpline toISplineNURBStoNURBSnurbs evalNURBS nurbsDomain nurbsDegreenurbsKnotVectornurbsControlPoints splitNURBSdegreemapControlPointsdeBoor maybeSpline deCasteljau mSplineDegreemSplineKnotVectormSplineControlPoints iSplineDegreeiSplineKnotVectoriSplineControlPoints