(self, obj, ev)
VTK callback for keypress events.

        Keypress events:
            * ``e``: exit the application
            * ``p``: pick object (hover the mouse and then press to pick)
            * ``f``: fly to point (click somewhere in the window and press to fly)
            * ``r``: reset the camera
            * ``s`` and ``w``: switch between solid and wireframe modes
            * ``b``: change background color
            * ``m``: change color of the picked object
            * ``d``: print debug information (of picked object, point, etc.)
            * ``h``: change object visibility
            * ``n``: reset object visibility
            * ``arrow keys``: pan the model

        Please refer to `vtkInteractorStyle <https://vtk.org/doc/nightly/html/classvtkInteractorStyle.html>`_ class
        reference for more details.

        :param obj: render window interactor
        :type obj: vtkRenderWindowInteractor
        :param ev: event name
        :type ev: str
VTK callback for keypress events.
VTK callback for keypress events .
def keypress_callback(self, obj, ev):
        """ VTK callback for keypress events.

        Keypress events:
            * ``e``: exit the application
            * ``p``: pick object (hover the mouse and then press to pick)
            * ``f``: fly to point (click somewhere in the window and press to fly)
            * ``r``: reset the camera
            * ``s`` and ``w``: switch between solid and wireframe modes
            * ``b``: change background color
            * ``m``: change color of the picked object
            * ``d``: print debug information (of picked object, point, etc.)
            * ``h``: change object visibility
            * ``n``: reset object visibility
            * ``arrow keys``: pan the model

        Please refer to `vtkInteractorStyle <https://vtk.org/doc/nightly/html/classvtkInteractorStyle.html>`_ class
        reference for more details.

        :param obj: render window interactor
        :type obj: vtkRenderWindowInteractor
        :param ev: event name
        :type ev: str
        """
        key = obj.GetKeySym()  # pressed key (as str)
        render_window = obj.GetRenderWindow()  # vtkRenderWindow
        renderer = render_window.GetRenderers().GetFirstRenderer()  # vtkRenderer
        picker = obj.GetPicker()  # vtkPropPicker
        actor = picker.GetActor()  # vtkActor

        # Custom keypress events
        if key == 'Up':
            camera = renderer.GetActiveCamera()  # vtkCamera
            camera.Pitch(2.5)
        if key == 'Down':
            camera = renderer.GetActiveCamera()  # vtkCamera
            camera.Pitch(-2.5)
        if key == 'Left':
            camera = renderer.GetActiveCamera()  # vtkCamera
            camera.Yaw(-2.5)
        if key == 'Right':
            camera = renderer.GetActiveCamera()  # vtkCamera
            camera.Yaw(2.5)
        if key == 'b':
            if self._bg_id >= len(self._bg):
                self._bg_id = 0
            renderer.SetBackground(*self._bg[self._bg_id])
            self._bg_id += 1
        if key == 'm':
            if actor is not None:
                actor.GetProperty().SetColor(random(), random(), random())
        if key == 'd':
            if actor is not None:
                print("Name:", actor.GetMapper().GetArrayName())
                print("Index:", actor.GetMapper().GetArrayId())
            print("Selected point:", picker.GetSelectionPoint()[0:2])
            print("# of visible actors:", renderer.VisibleActorCount())
        if key == 'h':
            if actor is not None:
                actor.SetVisibility(not actor.GetVisibility())
        if key == 'n':
            actors = renderer.GetActors()  # vtkActorCollection
            for actor in actors:
                actor.VisibilityOn()

        # Update render window
        render_window.Render()
def keypress_callback ( self , obj , ev ) : key = obj . GetKeySym ( ) # pressed key (as str) render_window = obj . GetRenderWindow ( ) # vtkRenderWindow renderer = render_window . GetRenderers ( ) . GetFirstRenderer ( ) # vtkRenderer picker = obj . GetPicker ( ) # vtkPropPicker actor = picker . GetActor ( ) # vtkActor # Custom keypress events if key == 'Up' : camera = renderer . GetActiveCamera ( ) # vtkCamera camera . Pitch ( 2.5 ) if key == 'Down' : camera = renderer . GetActiveCamera ( ) # vtkCamera camera . Pitch ( - 2.5 ) if key == 'Left' : camera = renderer . GetActiveCamera ( ) # vtkCamera camera . Yaw ( - 2.5 ) if key == 'Right' : camera = renderer . GetActiveCamera ( ) # vtkCamera camera . Yaw ( 2.5 ) if key == 'b' : if self . _bg_id >= len ( self . _bg ) : self . _bg_id = 0 renderer . SetBackground ( * self . _bg [ self . _bg_id ] ) self . _bg_id += 1 if key == 'm' : if actor is not None : actor . GetProperty ( ) . SetColor ( random ( ) , random ( ) , random ( ) ) if key == 'd' : if actor is not None : print ( "Name:" , actor . GetMapper ( ) . GetArrayName ( ) ) print ( "Index:" , actor . GetMapper ( ) . GetArrayId ( ) ) print ( "Selected point:" , picker . GetSelectionPoint ( ) [ 0 : 2 ] ) print ( "# of visible actors:" , renderer . VisibleActorCount ( ) ) if key == 'h' : if actor is not None : actor . SetVisibility ( not actor . GetVisibility ( ) ) if key == 'n' : actors = renderer . GetActors ( ) # vtkActorCollection for actor in actors : actor . VisibilityOn ( ) # Update render window render_window . Render ( )