37 lines
1.0 KiB
Python
37 lines
1.0 KiB
Python
import vtk
|
|
|
|
def loadStl(fname):
|
|
"""Load the given STL file, and return a vtkPolyData object for it."""
|
|
reader = vtk.vtkSTLReader()
|
|
reader.SetFileName(fname)
|
|
reader.Update()
|
|
polydata = reader.GetOutput()
|
|
return polydata
|
|
|
|
def polyDataToActor(polydata):
|
|
"""Wrap the provided vtkPolyData object in a mapper and an actor, returning the actor."""
|
|
mapper = vtk.vtkPolyDataMapper()
|
|
mapper.SetInputData(polydata)
|
|
actor = vtk.vtkActor()
|
|
actor.SetMapper(mapper)
|
|
return actor
|
|
|
|
# Create a rendering window and renderer
|
|
ren = vtk.vtkRenderer()
|
|
renWin = vtk.vtkRenderWindow()
|
|
renWin.AddRenderer(ren)
|
|
|
|
# Create a RenderWindowInteractor to permit manipulating the camera
|
|
iren = vtk.vtkRenderWindowInteractor()
|
|
iren.SetRenderWindow(renWin)
|
|
style = vtk.vtkInteractorStyleTrackballCamera()
|
|
iren.SetInteractorStyle(style)
|
|
|
|
stlFilename = "out.stl"
|
|
polydata = loadStl(stlFilename)
|
|
ren.AddActor(polyDataToActor(polydata))
|
|
|
|
# Enable user interface interactor
|
|
iren.Initialize()
|
|
renWin.Render()
|
|
iren.Start() |