示例#1
0
        public override void DrawShapes(Camera cam)
        {
            if (!CanDraw && Manager.Instance.Is2DEditing)
            {
                return;
            }
            using (Draw.Command(cam))
            {
                if (Profile2D == Manager.Profile2D.Bezier)
                {
                    if (Manager.Instance.Is2DEditing)
                    {
                        DrawBezierCurve();
                    }
                    else
                    {
                        if (Manager.Instance.currentMode != Manager.Mode.Revolution || Mode != Manager.Mode.SweepPath)
                        {
                            DrawBezierCurveOrientated();
                        }
                    }
                }

                if (Profile2D == Manager.Profile2D.Polygon || Manager.Instance.Is2DEditing)
                {
                    if (Manager.Instance.Is2DEditing)
                    {
                        DrawControlPolygon();
                    }
                    else
                    {
                        if (Manager.Instance.currentMode != Manager.Mode.Revolution || Mode != Manager.Mode.SweepPath)
                        {
                            DrawControlPolygon();
                        }
                    }
                }

                if (Manager.Instance.ShowConvexHull)
                {
                    var hull = GrahamScan.ComputeGrahamScan(ControlPoints.Select(point => (Vector3)point.position).ToList());
                    for (int i = 0; i < hull.Count; i++)
                    {
                        DrawConvexHull(hull, i);
                    }
                }
            }
        }
示例#2
0
 public List <Vector2> ControlPointsPositions()
 {
     return(ControlPoints.Select(point => point.position).ToList());
 }