/*
         * FillHalfRoundRectangle
         */

        /// <summary>
        /// Fills a half-round rectangle on the specified graphics surface with the specified pen within the
        /// specified bounds and with the specified radius.
        /// </summary>
        /// <exception cref="ArgumentNullException">
        /// <para><paramref name="g"/> is <see langword="null"/>.</para>
        /// -or-
        /// <para><paramref name="brush"/> is <see langword="null"/>.</para>
        /// </exception>
        public static void FillHalfRoundRectangle(Graphics g, Brush brush, Rectangle rectangleBounds, float radius)
        {
            if (g == null)
            {
                throw new ArgumentNullException("g");
            }

            if (brush == null)
            {
                throw new ArgumentNullException("brush");
            }

            using (GraphicsPath path = NuGenControlPaint.GetHalfRoundRectangleGraphicsPath(rectangleBounds, radius))
            {
                g.FillPath(brush, path);
            }
        }
        /*
         * DrawHalfRoundRectangle
         */

        /// <summary>
        /// </summary>
        /// <exception cref="ArgumentNullException">
        /// <para><paramref name="g"/> is <see langword="null"/>.</para>
        /// -or-
        /// <para><paramref name="pen"/> is <see langword="null"/>.</para>
        /// </exception>
        public static void DrawHalfRoundRectangle(Graphics g, Pen pen, Rectangle rectangleBounds, float radius)
        {
            if (g == null)
            {
                throw new ArgumentNullException("g");
            }

            if (pen == null)
            {
                throw new ArgumentNullException("pen");
            }

            using (GraphicsPath path = NuGenControlPaint.GetHalfRoundRectangleGraphicsPath(rectangleBounds, radius))
            {
                g.DrawPath(pen, path);
            }
        }