/// <summary>
        /// gets the point on the bezier at time t
        /// </summary>
        /// <returns>The point at time.</returns>
        /// <param name="t">T.</param>
        public Vector2 getPointAtTime(float t)
        {
            var i = PointIndexAtTime(ref t);

            return(Bezier.GetPoint(points.Buffer[i], points.Buffer[i + 1], points.Buffer[i + 2], points.Buffer[i + 3], t));
        }
        /// <summary>
        /// gets the velocity (first derivative) of the bezier at time t
        /// </summary>
        /// <returns>The velocity at time.</returns>
        /// <param name="t">T.</param>
        public Vector2 GetVelocityAtTime(float t)
        {
            var i = PointIndexAtTime(ref t);

            return(Bezier.GetFirstDerivative(points.Buffer[i], points.Buffer[i + 1], points.Buffer[i + 2], points.Buffer[i + 3], t));
        }