public override void Draw(ref Bitmap bitmap, PlotProperties plotprops)
            {
                double theta_degree = theta * 180 / Math.PI;
                double SF           = ImageUtil.CalculateScaleFactor(bitmap, plotprops);

                int _b1 = (int)(b1 * SF);
                int _t1 = (int)(t1 * SF);
                int _b2 = (int)(b2 * SF);
                int _t2 = (int)(t2 * SF);
                int _r1 = (int)(r1 * SF);
                int _r2 = (int)(r2 * SF);
                int _h  = (int)(h * SF);
                int _tw = (int)(tw * SF);

                int wdth = bitmap.Width;
                int hght = bitmap.Height;

                if (_r1 < 1)
                {
                    _r1 = 1;
                }
                if (_r2 < 1)
                {
                    _r2 = 1;
                }

                Graphics g = Graphics.FromImage(bitmap);

                GraphicsPath path = new GraphicsPath();

                path.AddLine(0, 0, 0, _h - _t2 - _r2);
                path.AddArc(new System.Drawing.Rectangle(-_r2 * 2, _h - _t2 - _r2 * 2, _r2 * 2, _r2 * 2), 0, 90);
                path.AddLine(-_r2, _h - _t2, -_b2 + _tw, _h - _t2);
                path.AddLine(-_b2 + _tw, _h - _t2, -_b2 + _tw, _h);
                path.AddLine(-_b2 + _tw, _h, _tw, _h);
                path.AddLine(_tw, _h, _tw, _t1 + _r1);
                path.AddArc(new System.Drawing.Rectangle(_tw, _t1, _r1 * 2, _r1 * 2), 180, 90);
                path.AddLine(_tw + _r1, _t1, _b1, _t1);
                path.AddLine(_b1, _t1, _b1, 0);
                path.AddLine(_b1, 0, 0, 0);
                path.CloseFigure();

                PointF pnt = CreateImagePoint(SF);

                Coordinate xy_min = ImageUtil.CalculateImageXYmin(bitmap, plotprops);

                double Xdel = xp - xy_min.x;
                double Ydel = yp - xy_min.y;

                Matrix mtrx = ImageUtil.ImageTransformationMatrix(bitmap, pnt, theta_degree, Xdel, Ydel, SF, mirrorX, mirrorY);

                path.Transform(mtrx);

                Color _fillColor = Material.ConvertFillColor();

                Pen _pen = new Pen(borderColor, borderThickness);

                _pen.Alignment = PenAlignment.Inset;
                g.FillPath(new SolidBrush(_fillColor), path);
                g.DrawPath(_pen, path);

                _pen.Dispose();
                g.Dispose();
            }