private void saveClick(object sender, RoutedEventArgs e) { if (myHull == null) { return; } SaveFileDialog saveDlg = new SaveFileDialog(); saveDlg.Filter = "AVS Hull files (*.avsh)|*.avsh|All files (*.*)|*.*"; saveDlg.FilterIndex = 0; saveDlg.RestoreDirectory = true; Nullable <bool> result = saveDlg.ShowDialog(); if (result == true) { System.Xml.Serialization.XmlSerializer writer = new System.Xml.Serialization.XmlSerializer(typeof(Hull)); using (FileStream output = new FileStream(saveDlg.FileName, FileMode.Create)) { writer.Serialize(output, myHull); } undoLog.Snapshot(); redoLog.Clear(); } }
protected override void OnPreviewMouseUp(MouseButtonEventArgs e) { m_RecreateHandles = false; Point loc = e.GetPosition(this); if (m_dragging && m_draggingHandle != NOT_SELECTED) { double x, y, z; if (Perspective == PerspectiveType.FRONT) { // Front x = (m_startDrag.X - loc.X) / m_scale; y = (m_startDrag.Y - loc.Y) / m_scale; z = 0; // Can't change X coordinate on front view of BOW. if (m_editableHull.Bulkheads[m_selectedBulkhead].Type == Bulkhead.BulkheadType.BOW) { x = 0; } } else if (Perspective == PerspectiveType.SIDE) { // Side x = 0; y = (m_startDrag.Y - loc.Y) / m_scale; z = -(m_startDrag.X - loc.X) / m_scale; } else if (Perspective == PerspectiveType.TOP) { // Top x = -(m_startDrag.Y - loc.Y) / m_scale; y = 0; z = -(m_startDrag.X - loc.X) / m_scale; } else { x = 0; y = 0; z = 0; } m_editableHull.UpdateBulkheadPoint(m_selectedBulkhead, m_draggingHandle, x, y, z); m_dragging = false; m_draggingHandle = NOT_SELECTED; m_RecreateHandles = true; //FIXTHIS: need to recompute chines? InvalidateVisual(); } HullLog undoLog = (HullLog)this.FindResource("UndoLog"); undoLog.Snapshot(); }