/// <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)); if (drawArea.PenType == DrawingPens.PenType.Generic) newPolygon = new DrawPolygon(p.X, p.Y, p.X + 1, p.Y + 1, drawArea.LineColor, drawArea.LineWidth); else newPolygon = new DrawPolygon(p.X, p.Y, p.X + 1, p.Y + 1, drawArea.PenType); // 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; }
/// <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; }
public override void OnMouseUp(DrawArea drawArea, MouseEventArgs e) { newPolygon = null; base.OnMouseUp(drawArea, e); }