python vtk mousemove_vtk 屏蔽鼠标交互事件

#!/usr/bin/env python#This simple example shows how to do basic rendering and pipeline#creation.

importvtkclassMouseInteractorHighLightActor(vtk.vtkInteractorStyleTrackballCamera):def __init__(self, parent =None):

self.AddObserver("MouseMoveEvent", self.MouseMoveEvent)

self.AddObserver("MouseWheelForwardEvent", self.MouseWheelForwardEvent)

self.AddObserver("MouseWheelBackwardEvent", self.MouseWheelBackwardEvent)defMouseMoveEvent(self, obj, event):pass

defMouseWheelBackwardEvent(self, obj, event):pass

defMouseWheelForwardEvent(self, obj, event):pass

defmain():

colors=vtk.vtkNamedColors()#Set the background color.

bkg = map(lambda x: x / 255.0, [26, 51, 102, 255])

colors.SetColor("BkgColor", *bkg)#This creates a polygonal cylinder model with eight circumferential

#facets.

cylinder =vtk.vtkCylinderSource()

cylinder.SetResolution(8)#The mapper is responsible for pushing the geometry into the graphics

#library. It may also do color mapping, if scalars or other

#attributes are defined.

cylinderMapper =vtk.vtkPolyDataMapper()

cylinderMapper.SetInputConnection(cylinder.GetOutputPort())#The actor is a grouping mechanism: besides the geometry (mapper), it

#also has a property, transformation matrix, and/or texture map.

#Here we set its color and rotate it -22.5 degrees.

cylinderActor =vtk.vtkActor()

cylinderActor.SetMapper(cylinderMapper)

cylinderActor.GetProperty().SetColor(colors.GetColor3d("red"))

cylinderActor.RotateX(30.0)

cylinderActor.RotateY(-45.0)#Create the graphics structure. The renderer renders into the render

#window. The render window interactor captures mouse events and will

#perform appropriate camera or actor manipulation depending on the

#nature of the events.

ren =vtk.vtkRenderer()

renWin=vtk.vtkRenderWindow()

renWin.AddRenderer(ren)

iren=vtk.vtkRenderWindowInteractor()

iren.SetRenderWindow(renWin)#add the custom style

style =MouseInteractorHighLightActor()

style.SetDefaultRenderer(ren)

iren.SetInteractorStyle(style)#Add the actors to the renderer, set the background and size

ren.AddActor(cylinderActor)

ren.SetBackground(colors.GetColor3d("BkgColor"))

renWin.SetSize(300, 300)

renWin.SetWindowName('Cylinder')#This allows the interactor to initalize itself. It has to be

#called before an event loop.

iren.Initialize()#We'll zoom in a little by accessing the camera and invoking a "Zoom"

#method on it.

ren.ResetCamera()

ren.GetActiveCamera().Zoom(1.5)

renWin.Render()#Start the event loop.

iren.Start()if __name__ == '__main__':

main()

你可能感兴趣的:(python,vtk,mousemove)