VTK/Examples/Python/Interaction/MouseEventsObserver

From KitwarePublic
< VTK‎ | Examples‎ | Python
Revision as of 03:24, 31 October 2013 by IMichka (talk | contribs) (Minor code cleanup)
Jump to navigationJump to search
VTK Examples Baseline Interaction TestMouseEvents.png

This example directly changes the observers of the vtkInteractor, which is an easy way to disable events or to add some simple callback functions. For a more general framework using vtkInteractorStyle see VTK/Examples/Python/Interaction/MouseEvents. This specific example just disables the left mouse button of the vtkInteractorStyleTrackballCamera and prints a simple message instead.

MouseEventsObserver.py

#!/usr/bin/env python

import vtk
 
source = vtk.vtkSphereSource()
source.SetCenter(0, 0, 0)
source.SetRadius(1)
source.Update()
 
mapper = vtk.vtkPolyDataMapper()
mapper.SetInputConnection(source.GetOutputPort())
 
actor = vtk.vtkActor()
actor.SetMapper(mapper)
 
renderer = vtk.vtkRenderer()
renderer.SetBackground(1, 1, 1)
renderer.AddActor(actor)
 
renwin = vtk.vtkRenderWindow()
renwin.AddRenderer(renderer)
 
interactor = vtk.vtkRenderWindowInteractor()
interactor.SetInteractorStyle(vtk.vtkInteractorStyleTrackballCamera())
interactor.SetRenderWindow(renwin)
 
def DummyFunc1(obj, ev):
    print "Before Event"
    
def DummyFunc2(obj, ev):
    print "After Event"
 
# Print interator gives you a list of registered observers of the current 
# interactor style
#print interactor
 
 
## adding priorities allow to control the order of observer execution 
## (highest value first! if equal the first added observer is called first)
interactor.RemoveObservers('LeftButtonPressEvent')
interactor.AddObserver('LeftButtonPressEvent', DummyFunc1, 1.0)
interactor.AddObserver('LeftButtonPressEvent', DummyFunc2, -1.0)
interactor.Initialize()
interactor.Start()