/// <summary>
        /// Clone this instance
        /// </summary>
        public override DrawObject Clone()
        {
            DrawPolygon drawPolygon = new DrawPolygon();

            foreach (Point p in pointArray)
            {
                drawPolygon.pointArray.Add(p);
            }

            FillDrawObjectFields(drawPolygon);
            return(drawPolygon);
        }
        /// <summary>
        /// Left nouse button is pressed
        /// </summary>
        /// <param name="drawArea"></param>
        /// <param name="e"></param>
        public override void OnMouseDown(DrawArea drawArea, MouseEventArgs e)
        {
            // Create new polygon, add it to the list
            // and keep reference to it
            Point p = drawArea.BackTrackMouse(new Point(e.X, e.Y));

            newPolygon = new DrawPolygon(p.X, p.Y, p.X + 1, p.Y + 1, drawArea.LineColor, drawArea.LineWidth, drawArea.PenType, drawArea.EndCap);

            // Set the minimum distance variable according to current zoom level.
            minDistance = Convert.ToInt32((15 * drawArea.Zoom) * (15 * drawArea.Zoom));

            AddNewObject(drawArea, newPolygon);
            lastX = e.X;
            lastY = e.Y;
        }
 public override void OnMouseUp(DrawArea drawArea, MouseEventArgs e)
 {
     newPolygon = null;
     base.OnMouseUp(drawArea, e);
 }