/// <summary>
        /// Clone PolygonShape with values
        /// </summary>
        /// <returns>new polygon shape</returns>
        public new PolygonMShape ValueClone()
        {
            PolygonMShape aPGS = new PolygonMShape();

            aPGS.highValue   = highValue;
            aPGS.lowValue    = lowValue;
            aPGS.Visible     = Visible;
            aPGS.Selected    = Selected;
            aPGS.LegendIndex = LegendIndex;

            return(aPGS);
        }
        /// <summary>
        /// Clone PolygonShape
        /// </summary>
        /// <returns>PolygonShape</returns>
        public override object Clone()
        {
            PolygonMShape aPGS = new PolygonMShape();

            aPGS.Extent      = Extent;
            aPGS.highValue   = highValue;
            aPGS.lowValue    = lowValue;
            aPGS.PartNum     = PartNum;
            aPGS.parts       = (int[])parts.Clone();
            aPGS.Points      = new List <PointD>(Points);
            aPGS.Visible     = Visible;
            aPGS.Selected    = Selected;
            aPGS.LegendIndex = LegendIndex;

            return(aPGS);
        }