[vtkusers] About MouseEvents.py example
Elvis Stansvik
elvis.stansvik at orexplore.com
Thu Jun 16 09:52:02 EDT 2016
The MouseEvents.py example [1] currently does:
class MyInteractorStyle(vtk.vtkInteractorStyleTrackballCamera):
def __init__(self,parent=None):
self.AddObserver("MiddleButtonPressEvent",self.middleButtonPressEvent)
self.AddObserver("MiddleButtonReleaseEvent",self.middleButtonReleaseEvent)
def middleButtonPressEvent(self,obj,event):
print("Middle Button pressed")
self.OnMiddleButtonDown()
return
def middleButtonReleaseEvent(self,obj,event):
print("Middle Button released")
self.OnMiddleButtonUp()
return
But I don't understand the reason for calling e.g.
self.OnMiddleButtonDown() ? Since this is not an override of a virtual
function (which is not possible in Python), but simply adding another
observer, I don't think it is needed? (..and I would think it would mean
OnMiddleButtonDown is called twice, right?).
This leads me to another question: What if I really do want to override the
behavior that the parent interactor style provides (or modify it by
manipulating the event), what are my options?
I saw at
http://www.vtk.org/Wiki/VTK/Examples/Python/Interaction/MouseEventsObserver
that you can remove all observers of an event from the interactor, but that
seems like quite a hack :/ In my case, I'm interested in locking the camera
rotation to a certain axis, but perhaps a custom interactor style is not
the way to go?
Elvis
[1] http://www.vtk.org/Wiki/VTK/Examples/Python/Interaction/MouseEvents
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtkusers/attachments/20160616/5cdbbfd3/attachment.html>
More information about the vtkusers
mailing list