/// <summary>
        /// Create a graphics path to draw the entity shape.
        /// </summary>
        protected GraphicsPath CreateShape(Size sz)
        {
            var roundSize = Math.Min(sz.Width, sz.Height) / 2;

            switch (Entity.Shape)
            {
            case Shapes.Circle:
                return(GraphicsUtil.CreateRoundedRectangle(sz, roundSize));

            case Shapes.Diamond:
                return(GraphicsUtil.CreateDiamond(sz));

            case Shapes.Square:
                return(GraphicsUtil.CreateSquare(sz));

            case Shapes.Triangle:
                return(GraphicsUtil.CreateTriangle(sz));

            default:
                throw new ArgumentException("Unknown shape: " + (int)Entity.Shape);
            }
        }