1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125
|
#!/usr/bin/env python
import vtk
from vtk.test import Testing
from vtk.util.misc import vtkGetDataRoot
VTK_DATA_ROOT = vtkGetDataRoot()
# Create the RenderWindow, Renderer and both Actors
#
ren1 = vtk.vtkRenderer()
renWin = vtk.vtkRenderWindow()
renWin.AddRenderer(ren1)
iren = vtk.vtkRenderWindowInteractor()
iren.SetRenderWindow(renWin)
# read data
#
input = vtk.vtkPolyDataReader()
input.SetFileName("" + str(VTK_DATA_ROOT) + "/Data/brainImageSmooth.vtk")
#
# generate vectors
clean = vtk.vtkCleanPolyData()
clean.SetInputConnection(input.GetOutputPort())
smooth = vtk.vtkWindowedSincPolyDataFilter()
smooth.SetInputConnection(clean.GetOutputPort())
smooth.GenerateErrorVectorsOn()
smooth.GenerateErrorScalarsOn()
smooth.Update()
mapper = vtk.vtkPolyDataMapper()
mapper.SetInputConnection(smooth.GetOutputPort())
mapper.SetScalarRange(smooth.GetOutput().GetScalarRange())
brain = vtk.vtkActor()
brain.SetMapper(mapper)
# Add the actors to the renderer, set the background and size
#
ren1.AddActor(brain)
renWin.SetSize(320,240)
ren1.GetActiveCamera().SetPosition(149.653,-65.3464,96.0401)
ren1.GetActiveCamera().SetFocalPoint(146.003,22.3839,0.260541)
ren1.GetActiveCamera().SetViewAngle(30)
ren1.GetActiveCamera().SetViewUp(-0.255578,-0.717754,-0.647695)
ren1.GetActiveCamera().SetClippingRange(79.2526,194.052)
iren.Initialize()
renWin.Render()
# render the image
#
# prevent the tk window from showing up then start the event loop
#
# If the current directory is writable, then test the witers
#
if (catch.catch(globals(),"""channel = open("test.tmp", "w")""") == 0):
channel.close()
file.delete("-force", "test.tmp")
#
#
# test the writers
dsw = vtk.vtkDataSetWriter()
dsw.SetInputConnection(smooth.GetOutputPort())
dsw.SetFileName("brain.dsw")
dsw.Write()
file.delete("-force", "brain.dsw")
pdw = vtk.vtkPolyDataWriter()
pdw.SetInputConnection(smooth.GetOutputPort())
pdw.SetFileName("brain.pdw")
pdw.Write()
file.delete("-force", "brain.pdw")
if (info.command(globals(), locals(), "vtkIVWriter") != ""):
iv = vtk.vtkIVWriter()
iv.SetInputConnection(smooth.GetOutputPort())
iv.SetFileName("brain.iv")
iv.Write()
file.delete("-force", "brain.iv")
pass
#
# the next writers only handle triangles
triangles = vtk.vtkTriangleFilter()
triangles.SetInputConnection(smooth.GetOutputPort())
if (info.command(globals(), locals(), "vtkIVWriter") != ""):
iv2 = vtk.vtkIVWriter()
iv2.SetInputConnection(triangles.GetOutputPort())
iv2.SetFileName("brain2.iv")
iv2.Write()
file.delete("-force", "brain2.iv")
pass
if (info.command(globals(), locals(), "vtkIVWriter") != ""):
edges = vtk.vtkExtractEdges()
edges.SetInputConnection(triangles.GetOutputPort())
iv3 = vtk.vtkIVWriter()
iv3.SetInputConnection(edges.GetOutputPort())
iv3.SetFileName("brain3.iv")
iv3.Write()
file.delete("-force", "brain3.iv")
pass
byu = vtk.vtkBYUWriter()
byu.SetGeometryFileName("brain.g")
byu.SetScalarFileName("brain.s")
byu.SetDisplacementFileName("brain.d")
byu.SetInputConnection(triangles.GetOutputPort())
byu.Write()
file.delete("-force", "brain.g")
file.delete("-force", "brain.s")
file.delete("-force", "brain.d")
mcubes = vtk.vtkMCubesWriter()
mcubes.SetInputConnection(triangles.GetOutputPort())
mcubes.SetFileName("brain.tri")
mcubes.SetLimitsFileName("brain.lim")
mcubes.Write()
file.delete("-force", "brain.lim")
file.delete("-force", "brain.tri")
stl = vtk.vtkSTLWriter()
stl.SetInputConnection(triangles.GetOutputPort())
stl.SetFileName("brain.stl")
stl.Write()
file.delete("-force", "brain.stl")
stlBinary = vtk.vtkSTLWriter()
stlBinary.SetInputConnection(triangles.GetOutputPort())
stlBinary.SetFileName("brainBinary.stl")
stlBinary.SetFileType(2)
stlBinary.Write()
file.delete("-force", "brainBinary.stl")
cgm = vtk.vtkCGMWriter()
cgm.SetInputConnection(triangles.GetOutputPort())
cgm.SetFileName("brain.cgm")
cgm.Write()
file.delete("-force", "brain.cgm")
pass
# --- end of script --
|