private void OnPictureBoxMouseDown(object sender, MouseEventArgs eargs) { if (_trackPointDirect != null) { return; } if (_trackPointReverse != null) { return; } if (eargs.Button != MouseButtons.Left) { return; } var currentPoint = new Point(eargs.X, eargs.Y); if (_mouseMovingState != null) { _mouseMovingState = null; return; } if (!_stacks.ContainsKey(sender)) { return; } _mouseMovingState = new MouseMovingState { Current = currentPoint, Start = currentPoint }; }
private void EndSelect(object sender, MouseEventArgs e) { var pb = CheckCanDrawRect(sender, e); if (pb == null) { return; } var currentPoint = new Point(e.X, e.Y); _mouseMovingState.End = currentPoint; var rect = GetRectangle(_mouseMovingState.Start, _mouseMovingState.End); if ((rect.Width < 2 || rect.Height < 2) && _analisysMode != AnalisysMode.TrackPoint) { _mouseMovingState = null; return; } DrawRectangle(rect); var pt1 = _processor.Current.MapToRGFrame(new Point(rect.Left, rect.Bottom)); var pt2 = _processor.Current.MapToRGFrame(new Point(rect.Right, rect.Top)); var rectF = new RectangleF(pt1.X, pt1.Y, pt2.X - pt1.X, pt2.Y - pt1.Y); switch (_analisysMode) { case AnalisysMode.Zoom: _processor.CreateNew(rectF, _plotPanel.Size); _processor.Draw(); break; case AnalisysMode.TrackPoint: _processor.StartTrackPoint(pt1, _plotPanel.Size); _processor.Draw(); var dynT = new Dyn(this); dynT.Show(); break; case AnalisysMode.TrackBoundary: _processor.StartBoundaryAnalysis(rectF, _plotPanel.Size); _processor.Draw(); var dyn = new Dyn(this); dyn.Show(); break; } _mouseMovingState = null; }
private void BeginSelect(object sender, MouseEventArgs e) { if (e.Button != MouseButtons.Left) { return; } var currentPoint = new Point(e.X, e.Y); if (_mouseMovingState != null) { _mouseMovingState = null; return; } _mouseMovingState = new MouseMovingState { Current = currentPoint, Start = currentPoint }; }
private void OnPictureBoxMouseUp(object sender, MouseEventArgs eargs) { var currentPoint = new Point(eargs.X, eargs.Y); ProcessingStack stack; #region Track point #region Track direct if (_trackPointDirect != null) { if (_stacks.ContainsKey(sender)) { stack = _stacks[sender]; var pt = stack.GetCPoint(currentPoint); pbC1C2.Cursor = Cursors.Default; pbC0C1.Cursor = Cursors.Default; pbC0C2.Cursor = Cursors.Default; var trackPointSlide = new TrackPointSlide(_trackPointDirect.Iterations, pt, _trackPointDirect.N, _trackPointDirect.Alpha); trackPointSlide.Show(this); trackPointSlide.TrackPointChanged += ts => { var act = new SceneTrackPointDirectAction { Alpha = ts.Alpha, N = ts.N, InitialPoint = pt, IterationsCount = ts.PointsCount, DrawFullPath = ts.ShowFullPath }; ActionBodySimple(act, true); flowLayoutPanel.Update(); }; } _trackPointDirect = null; return; } #endregion #region Track reserse if (_trackPointReverse != null) { if (_stacks.ContainsKey(sender)) { stack = _stacks[sender]; var pt = stack.GetCPoint(currentPoint); pbC1C2.Cursor = Cursors.Default; pbC0C1.Cursor = Cursors.Default; pbC0C2.Cursor = Cursors.Default; var trackPointSlide = new TrackPointSlide(_trackPointReverse.Iterations, pt, _trackPointReverse.N, _trackPointReverse.Alpha); trackPointSlide.Show(this); trackPointSlide.TrackPointChanged += ts => { var act = new SceneTrackPointReverseAction { Alpha = ts.Alpha, N = ts.N, InitialPoint = pt, IterationsCount = ts.PointsCount, DrawFullPath = ts.ShowFullPath }; ActionBodySimple(act, true); flowLayoutPanel.Update(); }; } _trackPointReverse = null; return; } #endregion #endregion var pb = CheckCanDrawRect(sender, eargs); if (pb == null) { return; } _mouseMovingState.End = currentPoint; stack = _stacks[sender]; var rect = ProcessingScene.GetRectangle(_mouseMovingState.Start, _mouseMovingState.End); if (rect.Width < 2 || rect.Height < 2) { _mouseMovingState = null; return; } var image = stack.DrawRectangle(rect, Config.AreaBorderColor); pb.Image = image; flowLayoutPanel.Update(); stack.ZoomRectangle(rect); pb.Image = stack.CurrentFrame.ActualImage; flowLayoutPanel.Update(); _mouseMovingState = null; }