public static Vector3 DeboorDerivative(float t, int order, params Vector3[] cps) { if (cps.Length != 4) { throw new InvalidOperationException("Only cubic splines are properly handled, 4 control points expected"); } var bezier = MathExtensions.BSplineToBernstein(cps[0], cps[1], cps[2], cps[3]); return(BezierDerivative(t, order, bezier.a, bezier.b, bezier.c, bezier.d)); }
public static Vector3 DeBoorTangent(Vector3 a, Vector3 b, Vector3 c, Vector3 d, float t) { var bezier = MathExtensions.BSplineToBernstein(a, b, c, d); return(BezierTangent(bezier.a, bezier.b, bezier.c, bezier.d, t)); }