private void ContourPresenter_MouseDown(object sender, MouseButtonEventArgs e) { var presenter = (ContourPresenterControl)sender; var size = presenter.RenderSize; if (!m_isContourInputMode && e.LeftButton == MouseButtonState.Pressed) { var point = e.GetPosition(presenter).ToContourPoint(size); if (IsClosedContour) { m_rawContour = new Contour(new ContourAnalysis.Core.Point[] { point, point }); } else { m_rawContour = new Contour(new ContourAnalysis.Core.Point[] { point }); } m_isContourInputMode = true; ContourPresenter.CaptureMouse(); ContoursChanged(); } }
private void ContourPresenter_MouseUp(object sender, MouseButtonEventArgs e) { if (m_isContourInputMode) { m_isContourInputMode = false; ContourPresenter.ReleaseMouseCapture(); } }
private void ContoursChanged() { if (m_rawContour == null) { return; } m_simplifiedContour = m_rawContour.EventlyRearrange().BringLength(TargetLength); if (ContourPresenter.Contour != m_rawContour) { ContourPresenter.Contour = m_rawContour; } else { ContourPresenter.Draw(); } SimplifiedContourPresenter.Contour = m_simplifiedContour; OnContourChanged(); }