예제 #1
0
        //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
        //事件触发机制。鼠标或键盘交互触发事件。这里触发PrintEvent()函数事件
        //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
        public void HookEvents()
        {
            vtkRenderWindowInteractor Interactor = renderWindowControl1.RenderWindow.GetInteractor();
            this.HookErrorWindowEvents();

            Interactor = this.renderWindowControl1.RenderWindow.GetInteractor();
            this.InteractorHandler = new Kitware.VTK.vtkObject.vtkObjectEventHandler(Interactor_AnyEventHandler);
            Interactor.AnyEvt += this.InteractorHandler;
            // this.Interactor.PickEvt+=new Kitware.VTK.vtkObject.vtkObjectEventHandler(Interactor_AnyEventHandler);

            // Give our own style a higher priority than the built-in one
            // so that we see the events first:
            //
            float builtInPriority = Interactor.GetInteractorStyle().GetPriority();

            this.UserStyle = Kitware.VTK.vtkInteractorStyleUser.New();
            this.UserStyle.SetPriority(0.5f);
            this.UserStyle.SetInteractor(Interactor);

            this.UserHandler = new Kitware.VTK.vtkObject.vtkObjectEventHandler(UserStyle_MultipleEventHandler);

            // Keyboard events:
            this.UserStyle.KeyPressEvt += this.UserHandler;
            this.UserStyle.CharEvt += this.UserHandler;
            this.UserStyle.KeyReleaseEvt += this.UserHandler;
        }
예제 #2
0
        public void UnhookEvents()
        {
            vtkRenderWindowInteractor Interactor = renderWindowControl1.RenderWindow.GetInteractor();
            this.UserStyle.KeyPressEvt -= this.UserHandler;
            this.UserStyle.CharEvt -= this.UserHandler;
            this.UserStyle.KeyReleaseEvt -= this.UserHandler;

            Interactor.AnyEvt -= this.InteractorHandler;

            this.UserHandler = null;
            this.UserStyle = null;
            this.InteractorHandler = null;
            Interactor = null;
        }