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