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); } } } }
public List <Vector2> ControlPointsPositions() { return(ControlPoints.Select(point => point.position).ToList()); }