/// <summary> /// Constructor. /// </summary> /// <param name="from">Anchor point of curve from.</param> /// <param name="to">Anchor point of curve to.</param> public BezierCurve(BezierAnchor from, BezierAnchor to) { this.from = from; this.to = to; }
/// <summary> /// Evaluate the curve at anchor and time. /// </summary> /// <param name="from"></param> /// <param name="to"></param> /// <param name="t"></param> /// <returns></returns> public static Vector3 Evaluate(BezierAnchor from, BezierAnchor to, float t) { return(Mathf.Pow(1 - t, 3) * from.point + 3 * t * Mathf.Pow(1 - t, 2) * from.tangent + 3 * (1 - t) * Mathf.Pow(t, 2) * to.tangent + Mathf.Pow(t, 3) * to.point); }
/// <summary> /// Transform anchor. /// </summary> /// <param name="anchor"></param> /// <returns></returns> protected BezierAnchor TransformAnchor(BezierAnchor anchor) { anchor.point = transform.TransformPoint(anchor.point); anchor.tangent = transform.TransformVector(anchor.tangent); return(anchor); }