public override void OnInspectorGUI()
 {
     DrawDefaultInspector();
     spline = target as BezierSplineCopy;
     if (GUILayout.Button("Add Curve"))
     {
         Undo.RecordObject(spline, "Add Curve");
         spline.AddCurve();
         EditorUtility.SetDirty(spline);
     }
 }
 public override void OnInspectorGUI()
 {
     DrawDefaultInspector();
     spline = target as BezierSplineCopy;
     if (GUILayout.Button("Add Curve"))
     {
         Undo.RecordObject(spline, "Add Curve");
         spline.AddCurve();
         EditorUtility.SetDirty(spline);
     }
 }
    private void OnSceneGUI()
    {
        spline          = target as BezierSplineCopy;
        handleTransform = spline.transform;
        handleRotation  = Tools.pivotRotation == PivotRotation.Local ?
                          handleTransform.rotation : Quaternion.identity;

        Vector3 p0 = ShowPoint(0);

        for (int i = 1; i < spline.points.Length; i += 3)
        {
            Vector3 p1 = ShowPoint(i);
            Vector3 p2 = ShowPoint(i + 1);
            Vector3 p3 = ShowPoint(i + 2);

            Handles.color = Color.gray;
            Handles.DrawLine(p0, p1);
            Handles.DrawLine(p2, p3);
            p0 = p3;
        }

        if (!spline.controlPointsComputed)
        {
            spline.ComputeControlPoints();
        }

        p0 = spline.controlPoints[0];
        for (int i = 1; i < spline.controlPoints.Length; i += 3)
        {
            Vector3 p1 = spline.controlPoints[i];
            Vector3 p2 = spline.controlPoints[i + 1];
            Vector3 p3 = spline.controlPoints[i + 2];

            Handles.color = Color.gray;
            Handles.DrawLine(p0, p1);
            Handles.DrawLine(p2, p3);

            Handles.DrawBezier(p0, p3, p1, p2, Color.white, null, 2f);
            p0 = p3;
        }
    }
    private void OnSceneGUI()
    {
        spline = target as BezierSplineCopy;
        handleTransform = spline.transform;
        handleRotation = Tools.pivotRotation == PivotRotation.Local ?
            handleTransform.rotation : Quaternion.identity;

        Vector3 p0 = ShowPoint(0);
        for (int i = 1; i < spline.points.Length; i += 3)
        {
            Vector3 p1 = ShowPoint(i);
            Vector3 p2 = ShowPoint(i + 1);
            Vector3 p3 = ShowPoint(i + 2);

            Handles.color = Color.gray;
            Handles.DrawLine(p0, p1);
            Handles.DrawLine(p2, p3);
            p0 = p3;
        }

        if (!spline.controlPointsComputed)
        {
            spline.ComputeControlPoints();
        }

        p0 = spline.controlPoints[0];
        for (int i = 1; i < spline.controlPoints.Length; i += 3)
        {
            Vector3 p1 = spline.controlPoints[i];
            Vector3 p2 = spline.controlPoints[i + 1];
            Vector3 p3 = spline.controlPoints[i + 2];

            Handles.color = Color.gray;
            Handles.DrawLine(p0, p1);
            Handles.DrawLine(p2, p3);

            Handles.DrawBezier(p0, p3, p1, p2, Color.white, null, 2f);
            p0 = p3;
        }
    }