コード例 #1
0
 public ParametricBezier2f(BEZIER_DEGREE degree)
     : base((int)degree)
 {
 }
コード例 #2
0
 public Bezier2(BEZIER_DEGREE degree)
     : this((int)degree)
 {
 }
コード例 #3
0
        protected virtual void Update()
        {
            bool leftMouseClicked = Input.GetMouseButtonDown(0);

            if (leftMouseClicked)
            {
                Vector2 point = GetMousePosition();
                OnLeftClick(point);
            }

            if (Input.GetKeyDown(KeyCode.UpArrow))
            {
                uint i = (uint)Degree + 1;
                if (i < 1)
                {
                    i = 5;
                }
                if (i > 5)
                {
                    i = 1;
                }
                Degree = (BEZIER_DEGREE)i;
            }
            else if (Input.GetKeyDown(KeyCode.DownArrow))
            {
                uint i = (uint)Degree - 1;
                if (i < 1)
                {
                    i = 5;
                }
                if (i > 5)
                {
                    i = 1;
                }
                Degree = (BEZIER_DEGREE)i;
            }
            else if (Input.GetKeyDown(KeyCode.Tab))
            {
                Parametric = !Parametric;
            }

            if (Input.GetKeyDown(KeyCode.Space))
            {
                ResetInput();
                OnCurveCleared();
            }
            else if (!MadeCurve)
            {
                Vector2 point = GetMousePosition();

                if (leftMouseClicked)
                {
                    if (Points == null)
                    {
                        CreatePoints();
                        AddPoint(point);
                        AddPoint(point);
                    }
                    else
                    {
                        int degree = (int)Degree;
                        if (Points.Count == degree + 1)
                        {
                            MadeCurve = true;
                            OnCurveComplete(Points);
                        }
                        else
                        {
                            AddPoint(point);
                        }
                    }
                }
                else
                {
                    MoveLastPoint(point);
                }
            }
        }