Stuart.EditGroup.GetSelectionGeometry C# (CSharp) Method

GetSelectionGeometry() private method

private GetSelectionGeometry ( ICanvasResourceCreator resourceCreator, List points ) : CanvasGeometry
resourceCreator ICanvasResourceCreator
points List
return CanvasGeometry
        CanvasGeometry GetSelectionGeometry(ICanvasResourceCreator resourceCreator, List<Vector2> points)
        {
            Vector2 start = points.First();
            Vector2 end = points.Last();

            switch (RegionSelectionMode)
            {
                case SelectionMode.Rectangle:
                    {
                        Vector2 min = Vector2.Min(start, end);
                        Vector2 size = Vector2.Abs(start - end);

                        return CanvasGeometry.CreateRectangle(resourceCreator, min.X, min.Y, size.X, size.Y);
                    }

                case SelectionMode.Ellipse:
                    {
                        Vector2 center = (start + end) / 2;
                        Vector2 radius = Vector2.Abs(start - end) / 2;

                        return CanvasGeometry.CreateEllipse(resourceCreator, center, radius.X, radius.Y);
                    }

                case SelectionMode.Freehand:
                    {
                        return CanvasGeometry.CreatePolygon(resourceCreator, points.ToArray());
                    }

                default:
                    throw new NotSupportedException();
            }
        }