Пример #1
0
 public TextFxBezierCurve(TextFxBezierCurve curve)
 {
     m_anchor_points = new List <BezierCurvePoint>();
     if (curve.m_anchor_points != null)
     {
         m_anchor_points.InsertRange(0, curve.m_anchor_points);
     }
 }
    public void CalculateRotationProgressions(ref float[] letter_progressions, int num_progressions, Vector3[] offset_vecs, TextFxBezierCurve curve_override = null)
    {
        if (curve_override != null)
        {
            // Work out letter rotations based on the provided bezier curve setup

            var constant_offset = offset_vecs != null && offset_vecs.Length == 1;
            m_values = new Vector3[num_progressions];

            for (var idx = 0; idx < num_progressions; idx++)
                m_values[idx] = m_is_offset_from_last ? offset_vecs[constant_offset ? 0 : idx] : Vector3.zero;

            for (var idx = 0; idx < letter_progressions.Length; idx++)
                m_values[idx] += curve_override.GetCurvePointRotation(letter_progressions[idx]);
        }

        CalculateProgressions(num_progressions, curve_override == null ? offset_vecs : m_values, curve_override != null);
    }
Пример #3
0
 public TextFxBezierCurve(TextFxBezierCurve curve)
 {
     m_anchor_points = new List<BezierCurvePoint>();
     if (curve.m_anchor_points != null)
         m_anchor_points.InsertRange(0, curve.m_anchor_points);
 }
    public void SetBezierCurve(params Vector3[] curve_points)
    {
        m_progression_idx = CURVE_OPTION_INDEX;

        var bezier_curve = new TextFxBezierCurve();
        bezier_curve.m_anchor_points = new List<BezierCurvePoint>();

        BezierCurvePoint curve_point = null;
        var idx = 0;
        foreach (var point in curve_points)
        {
            if (idx % 2 == 0)
            {
                curve_point = new BezierCurvePoint();
                curve_point.m_anchor_point = point;
            }
            else
            {
                curve_point.m_handle_point = point;
                bezier_curve.m_anchor_points.Add(curve_point);
            }

            idx++;
        }

        if (idx % 2 == 1)
        {
            curve_point.m_handle_point = curve_point.m_anchor_point;
            bezier_curve.m_anchor_points.Add(curve_point);
        }

        m_bezier_curve = bezier_curve;
    }
 public void SetBezierCurve(TextFxBezierCurve bezier_curve)
 {
     m_progression_idx = CURVE_OPTION_INDEX;
     m_bezier_curve = bezier_curve;
 }