Revit.SDK.Samples.ObjectViewer.CS.Sketch3D.Zoom C# (CSharp) Method

Zoom() public method

zoom the displayed drawing in canvas
public Zoom ( bool zoomIn ) : void
zoomIn bool true for zoom in, false for zoom out
return void
        public void Zoom(bool zoomIn)
        {
            if (zoomIn)
            {
                m_transform3D.Scale(1f - ZoomRatio, 1f - ZoomRatio, MatrixOrder.Append);
            }
            else
            {
                m_transform3D.Scale(1f + ZoomRatio, 1f + ZoomRatio, MatrixOrder.Append);
            }
            if (null != UpdateViewEvent)
            {
                UpdateViewEvent();
            }
        }

Usage Example

Example #1
0
        /// <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);
        }