@staticmethod
def _gen_uniform_knotvector_(degree=0, num_ctrlpts=0):
    """ Generates a uniformly-spaced knot vector using the degree and the number of control points.
        :param degree: degree of the knot vector direction
        :type degree: integer
        :param num_ctrlpts: number of control points on that direction
        :type num_ctrlpts: integer
        :return: knot vector
        :rtype: list
        """
    if degree == 0 or num_ctrlpts == 0:
        raise ValueError('Input values should be different than zero.')
    knot_min = 0.0
    knot_max = 1.0
    m = degree + num_ctrlpts + 1
    knotvector = []
    i = 0
    while i < degree + 1:
        knotvector.append(knot_min)
        i += 1
    num_segments = m - (degree + 1) * 2 + 1
    spacing = (knot_max - knot_min) / num_segments
    midknot = knot_min + spacing
    while i < m - (degree + 1):
        knotvector.append(midknot)
        midknot += spacing
        i += 1
    while i < m:
        knotvector.append(knot_max)
        i += 1
    return knotvector
