public static Figure AddHandlesCornerDirections(this Figure figure, ICanvas canvas, HandleSizes handleSizes, HandleShapeType shapeType)
 {
     return(figure.AddHandles(canvas, handleSizes, shapeType, 0f, 0f, ResizeDirections.TopLeft, ResizeDirections.TopRight,
                              ResizeDirections.BottomRight, ResizeDirections.BottomLeft));
 }
 public static Figure AddHandlesLeftRightDirections(this Figure figure, ICanvas canvas, HandleSizes handleSizes, HandleShapeType shapeType)
 {
     return(figure.AddHandles(canvas, handleSizes, shapeType, 0f, 0f, ResizeDirections.Left, ResizeDirections.Right));
 }
 public static Figure AddHandles(this Figure figure, ICanvas canvas, HandleSizes handleSizes, HandleShapeType shapeType, params ResizeDirections[] directions)
 {
     return(figure.AddHandles(canvas, handleSizes, shapeType, 0, 0, directions));
 }
 public static Figure AddHandlesTopBottomDirections(this Figure figure, ICanvas canvas, HandleSizes handleSizes, HandleShapeType shapeType)
 {
     return(figure.AddHandles(canvas, handleSizes, shapeType, 0f, 0f, ResizeDirections.Top, ResizeDirections.Bottom));
 }
        public static Figure AddHandles(this Figure figure, ICanvas canvas, HandleSizes handleSizes, HandleShapeType shapeType, float offsetX, float offsetY, params ResizeDirections[] directions)
        {
            foreach (var direction in directions)
            {
                switch (shapeType)
                {
                case HandleShapeType.Round:
                    figure.AddHandle(new ResizeHandle(figure, canvas.HandleShapeFactory.GetRoundHandleShape(handleSizes),
                                                      offsetX, offsetY, direction));
                    break;

                case HandleShapeType.Square:
                    figure.AddHandle(new ResizeHandle(figure, canvas.HandleShapeFactory.GetSquareHandleShape(handleSizes),
                                                      offsetX, offsetY, direction));
                    break;

                default:
                    throw new ArgumentOutOfRangeException(nameof(shapeType), shapeType, null);
                }
            }

            return(figure);
        }