'Creates a Spline. points is a list of GVector, degree is the
degree of the Spline.'

def __init__(self, points, degree=3, knots=None):

    if (knots == None):
        self.knots = GetKnots(points, degree)
    else:
        if (len(points) > ((len(knots) - degree) + 1)):
            raise ValueError, 'too    many    control    points'
        elif (len(points) < ((len(knots) - degree) + 1)):
            raise ValueError, 'not    enough    control    points'
        last = knots[0]
        for cur in knots[1:]:
            if (cur < last):
                raise ValueError, 'knots    not    strictly    increasing'
            last = cur
        self.knots = knots
    self.points = points
    self.degree = degree
