public void MouseUpSupport() { if (_supportObj != null) { _supportObj = null; } }
/// <summary> /// Метод, выполняющий отрисовку опорных точек. /// </summary> /// <para name = "SelectObject">Переменная хранащая объект для которого нужно построить опорные точки</para> public static void AddSupportPoint(ObjectFugure SelectObject, Color ColorLine) { for (int i = 0; i < 4; i++) { SupportObjectFugure supportObjectFugure = new SupportObjectFugure(new Pen(ColorLine, 2), new GraphicsPath()); supportObjectFugure.Path.AddEllipse(СonstructionFigure.SelectFigure(SelectObject.Path.PathPoints[i], SelectObject.Pen.Width)); supportObjectFugure.IdFigure = SelectObject.IdFigure; supportObjectFugure.ControlPointF = i; SelectObject.AddListFigure(supportObjectFugure); } }
/// <summary> /// Метод, выполняющий отмену выделения. /// </summary> public void MouseUp() { foreach (ObjectFugure SelectObject in _selectedFigures) { if (SelectObject != null) { SelectObject.ClearListFigure(); SelectObject.PointSelect = null; SelectObject.SelectFigure = false; _supportObj = null; } } _selectedFigures.Clear(); }
public void SavePoint(MouseEventArgs e) { _oldPoint = e.Location; if (_selectedFigures.Count != 0) { foreach (ObjectFugure selectObject in _selectedFigures) { foreach (SupportObjectFugure supportObjecFigure in selectObject.SelectListFigure()) { _rectangleF = supportObjecFigure.Path.GetBounds(); if (_rectangleF.Contains(e.Location)) { _supportObj = supportObjecFigure; } } } } }
/// <summary> /// Метод, выполняющий добавление опорных точек в список. /// </summary> public void AddListFigure(SupportObjectFugure AddFigure) { _supportFigures.Add(AddFigure); }
/// <summary> /// Метод, отвечающий за перемещение и масштабирование фигур. /// </summary> /// <para name = "SelectObject">Переменная хранащая объект для которого нужно выполнять действия</para> /// <para name = "SupportObj">Переменная хранащая опорные точки выбранного объекта</para> /// <para name = "DeltaX">Переменная хранащая разницу по координате X</para> /// <para name = "DeltaY">Переменная хранащая разницу по координате Y</para> /// /// <para name = "EdipParametr">Объекта класса необходимый для выполнения масштабирования</para> public static void ScaleSelectFigure(ObjectFugure SelectObject, SupportObjectFugure SupportObj, int DeltaX, int DeltaY) { if (SelectObject.IdFigure == SupportObj.IdFigure) { switch (SupportObj.ControlPointF) { case 0: if (SelectObject.PointSelect[0].X + DeltaX < SelectObject.PointSelect[1].X) { SelectObject.PointSelect[0].X += DeltaX; } if (SelectObject.PointSelect[0].Y + DeltaY < SelectObject.PointSelect[3].Y) { SelectObject.PointSelect[0].Y += DeltaY; } break; case 1: if (SelectObject.PointSelect[2].X + DeltaX > SelectObject.PointSelect[0].X) { SelectObject.PointSelect[2].X += DeltaX; } if (SelectObject.PointSelect[0].Y + DeltaY < SelectObject.PointSelect[2].Y) { SelectObject.PointSelect[0].Y += DeltaY; } break; case 2: if (SelectObject.PointSelect[2].X + DeltaX > SelectObject.PointSelect[3].X) { SelectObject.PointSelect[2].X += DeltaX; } if (SelectObject.PointSelect[2].Y + DeltaY > SelectObject.PointSelect[1].Y) { SelectObject.PointSelect[2].Y += DeltaY; } break; case 3: if (SelectObject.PointSelect[0].X + DeltaX < SelectObject.PointSelect[2].X) { SelectObject.PointSelect[0].X += DeltaX; } if (SelectObject.PointSelect[2].Y + DeltaY > SelectObject.PointSelect[0].Y) { SelectObject.PointSelect[2].Y += DeltaY; } break; } SelectObject.Path.Reset(); SelectObject.Path.AddRectangle(СonstructionFigure.ShowRectangleFloat(SelectObject.PointSelect[0], SelectObject.PointSelect[2])); SelectObject.DrawText(); } EditObject.MoveObjectSupport(SelectObject, DeltaX, DeltaY); }
public void Dispose() { _selectedFigures = null; _supportObj = null; }