public bool Draw(Graphics g, ColorEnumStatics colorDef)
        {
            SolidBrush b = new SolidBrush(colorDef.GetColorFromEnum(color));

            double size;  // Force circle size to meet minimum requirement
            if (this.size < this.minimumSize)
                size = this.minimumSize;
            else
                size = this.size;

            XYIntLocation pt1;
            if ((loc1 is XYIntLocation) && isDrawable)
            {
                pt1 = (XYIntLocation)loc1;
                g.FillEllipse(b, (float)(pt1.X - size / 2),
                    (float)(pt1.Y - size / 2), (float)size, (float)size);
                return true;
            }
            else return false;
        }
        public bool Draw(Graphics g, ColorEnumStatics colorDef)
        {
            if (gradientPath.PointCount == 0) return false;
            Color[] colors = { colorDef.GetColorFromEnum(finalColor) };
            PathGradientBrush b = new PathGradientBrush(gradientPath);
            b.CenterColor = colorDef.GetColorFromEnum(color);
            b.SurroundColors = colors;

            //SolidBrush b = new SolidBrush(colorDef.GetColorFromEnum(color));

            if ((loc1 is XYIntLocation) && isDrawable)
            {
                g.FillRegion(b, region);

                return true;
            }
            else return false;
        }
        public bool Draw(Graphics g, ColorEnumStatics colorDef)
        {
            XYIntLocation pt1, pt2;
            Pen p = new Pen(colorDef.GetColorFromEnum(color), PenWidth);
            if (IsArrow)
            {
                p.StartCap = LineCap.ArrowAnchor;
            }

            if ((loc1 is XYIntLocation) && (loc2 is XYIntLocation) && isDrawable)
            {
                pt1 = (XYIntLocation)loc1; pt2 = (XYIntLocation)loc2;
                g.DrawLine(p, pt1.X, pt1.Y, pt2.X, pt2.Y);
                return true;
            }
            else return false;
        }