Esempio n. 1
0
        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();
            }
        }
Esempio n. 2
0
        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();
        }