/// <summary>
        /// We want to convert the periodic formulation into a non periodic formulation. To do
        /// this we follow the instructions from Guilia at DevDept.
        ///
        /// the things that need to be done to get the correct curve in Eyeshot are:
        /// - add one last control point equal to the first to close the curve
        /// - multiply the(x, y, z) coordinates of each control point by its w coordinate
        /// - the degree p of your curve is given by the multiplicity of the last knot in the periodic knot vector, therefore you need to increase by 1 the multiplicity of the last knot, and by p the multiplicity of the first knot.
        /// </summary>
        /// <param name="controlPoints4D"></param>
        /// <param name="knotArray"></param>
        /// <param name="degree"></param>
        private static void ConvertToNonPeriodic(ref Vector4[] controlPoints4D, ref double[] knotArray, int degree)
        {

            controlPoints4D = controlPoints4D.EndWith(controlPoints4D.First()).ToArray();

            var last = knotArray.Last();
            var first = knotArray.First();
            knotArray = Enumerable.Repeat(first, degree).Concat(knotArray).EndWith(last).ToArray();

            // We need to do some special handling to make it non periodic
        }