public void MoveX(bool left) { if (left) { m_transform3D.Translate(-MoveDistance, 0, MatrixOrder.Append); } else { m_transform3D.Translate(MoveDistance, 0, MatrixOrder.Append); } if (null != UpdateViewEvent) { UpdateViewEvent(); } }
/// <summary> /// Prefilter the message, action zoom, transform, rotate etc. /// </summary> /// <param name="m">The message captured</param> /// <returns>Informs if this message is used. </returns> public bool PreFilterMessage(ref Message m) { if (m.Msg == WM_KEYDOWN) { // mouse is out of previewBox if (Cursor.Current != Cursors.Cross) { return(false); } // deal with key down event System.Windows.Forms.Keys k = (System.Windows.Forms.Keys)(int) m.WParam; KeyEventArgs e = new KeyEventArgs(k); switch (e.KeyCode) { case Keys.Left: m_currentSketch.Data3D.RotateY(true); break; case Keys.Right: m_currentSketch.Data3D.RotateY(false); break; case Keys.Up: m_currentSketch.Data3D.RotateX(true); break; case Keys.Down: m_currentSketch.Data3D.RotateX(false); break; case Keys.PageUp: m_currentSketch.Data3D.RotateZ(true); break; case Keys.PageDown: m_currentSketch.Data3D.RotateZ(false); break; case Keys.S: m_currentSketch.MoveY(true); break; case Keys.W: m_currentSketch.MoveY(false); break; case Keys.A: m_currentSketch.MoveX(true); break; case Keys.D: m_currentSketch.MoveX(false); break; case Keys.Home: m_currentSketch.Zoom(true); break; case Keys.End: m_currentSketch.Zoom(false); break; case Keys.Escape: this.Close(); break; default: return(false); } return(true); } return(false); }