Init() public method

public Init ( Vector2 p0, Vector2 p1, Vector2 p2, Vector2 p3 ) : void
p0 Vector2
p1 Vector2
p2 Vector2
p3 Vector2
return void
Example #1
0
    // For Smooth Curve command
    public void AddRelativePoint(Vector3 control2, Vector3 end)
    {
        BezierCurve curve = GameObject.Instantiate(curvePrefab).GetComponent <BezierCurve>();

        int numCurves = curves.Count;

        if (numCurves > 0)
        {
            BezierCurve prev     = curves[numCurves - 1];
            Vector3     anchor   = prev.GetEndPosition();
            Vector3     control1 = (prev.p2.position - prev.p3.position) * -1;

            curve.Init(NumSubDivisions, anchor, anchor + control1, anchor + control2, anchor + end, transform);

            prev.SetNext(curve);
            curve.SetPrev(prev);
        }
        else
        {
            Vector3 p = transform.position;
            curve.Init(NumSubDivisions, p, p, p + control2, p + end, transform);
        }

        curves.Add(curve);
        splineLength += curve.GetLength();
    }
Example #2
0
    // Called when user clicks GUI Add Gizmo
    public void AddPoint(bool atStart)
    {
        BezierCurve curve = GameObject.Instantiate(curvePrefab).GetComponent <BezierCurve>();

        int numCurves = curves.Count;

        if (numCurves > 0)
        {
            if (atStart)
            {
                BezierCurve next   = curves[0];
                Vector3     anchor = next.GetStartPosition();
                curve.Init(NumSubDivisions, anchor, atStart, transform);

                next.SetPrev(curve);
                curve.SetNext(next);
            }
            else
            {
                BezierCurve prev   = curves[numCurves - 1];
                Vector3     anchor = prev.GetEndPosition();
                curve.Init(NumSubDivisions, anchor, atStart, transform);

                prev.SetNext(curve);
                curve.SetPrev(prev);
            }
        }
        else
        {
            curve.Init(NumSubDivisions, Vector3.zero, atStart, transform);
        }

        if (atStart)
        {
            curves.Insert(0, curve);
        }
        else
        {
            curves.Add(curve);
        }

        splineLength += curve.GetLength();
    }
Example #3
0
    public void AddAbsolutePoint(Vector3 end)
    {
        BezierCurve curve = GameObject.Instantiate(curvePrefab).GetComponent <BezierCurve>();

        int numCurves = curves.Count;

        if (numCurves > 0)
        {
            BezierCurve prev   = curves[numCurves - 1];
            Vector3     anchor = prev.GetEndPosition();
            curve.Init(NumSubDivisions, anchor, end, transform);

            prev.SetNext(curve);
            curve.SetPrev(prev);
        }
        else
        {
            curve.Init(NumSubDivisions, transform.position, end, transform);
        }

        curves.Add(curve);
        splineLength += curve.GetLength();
    }
Example #4
0
    public void ClosePath()
    {
        int numCurves = curves.Count;

        if (numCurves == 0)
        {
            Debug.Log("Error: Cannot close empty path.");
            return;
        }

        BezierCurve curve = GameObject.Instantiate(curvePrefab).GetComponent <BezierCurve>();

        BezierCurve startCurve = curves[0];
        BezierCurve endCurve   = curves[curves.Count - 1];

        curve.Init(NumSubDivisions, endCurve.GetEndPosition(), startCurve.GetStartPosition(), transform);
        curves.Add(curve);

        splineLength += curve.GetLength();

        endCurve.SetNext(curve);
        curve.SetPrev(endCurve);
    }