Exemplo n.º 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;
        }
 public void RemoveHandler(vtkObject.vtkObjectEventHandler handler)
 {
     this.EventImpl = (vtkObject.vtkObjectEventHandler)Delegate.Remove(this.EventImpl, handler);
     if (null == this.EventImpl)
     {
         this.CallRemoveObserver();
     }
 }
 public void AddHandler(vtkObject.vtkObjectEventHandler handler)
 {
     if (null == this.EventImpl)
     {
         this.CallAddObserver();
     }
     this.EventImpl = (vtkObject.vtkObjectEventHandler)Delegate.Combine(this.EventImpl, handler);
 }
Exemplo n.º 4
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;
        }
Exemplo n.º 5
0
        private void HookErrorWindowEvents()
        {
            if (null == this.ErrorWindow)
            {
                this.ErrorWindow = Kitware.VTK.vtkOutputWindow.GetInstance();
                this.ErrorHandler = new Kitware.VTK.vtkObject.vtkObjectEventHandler(ErrorWindow_ErrorHandler);

                this.ErrorWindow.ErrorEvt += this.ErrorHandler;
            }
        }
 public void RemoveAllHandlers()
 {
     this.CallRemoveObserver();
     this.EventImpl = null;
     this.Sender    = null;
 }